C#将image中的显示的图片转换成二进制
1.将Image图像文件存入到数据库中
我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才能存入数据库中.
//将本地图片转换成二进制保存起来
private byte[] SetImageToByteArray(string fileName)
{
FileStream fs = null;
try
{
fs = new FileStream(fileName, FileMode.Open, System.IO.FileAccess.Read, FileShare.ReadWrite);
Bitmap bt = new Bitmap(fs);
int streamLength = (int)fs.Length;
byte[] image = new byte[streamLength];
fs.Read(image, , streamLength); return image;
}
catch (Exception)
{ throw; }
finally
{ fs.Close();
}
}
public byte[] SetImageToByteArray(string fileName)
{
FileStream fs = new FileStream(fileName, FileMode.Open, System.IO.FileAccess.Read, FileShare.ReadWrite);
int streamLength = (int)fs.Length;
byte[] image = new byte[streamLength];
fs.Read(image, , streamLength);
fs.Close();
return image;
}
//另外,在ASP.NET中通过FileUpload控件得到的图像文件可以通过以下方法
public byte[] SetImageToByteArray(FileUpload FileUpload1)
{
Stream stream = FileUpload1.PostedFile.InputStream;
byte[] photo = new byte[FileUpload1.PostedFile.ContentLength];
stream.Read(photo, , FileUpload1.PostedFile.ContentLength);
stream.Close();
return photo;
}
2.从SQL Server数据库读取Image类型的数据,并转换成bytes[]或Image图像文件
public byte[] SetImage(SqlDataReader reader)
{
return (byte[])reader["Image"];//Image为数据库中存放Image类型字段
}
//将byte[]转换成Image图像类型
//加载以下命名空间using System.Drawing;/using System.IO;
using System.Data.SqlClient;
public Image SetByteToImage(byte[] mybyte)
{
Image image;
MemoryStream mymemorystream = new MemoryStream(mybyte,, mybyte.Length);
image = Image.FromStream(mymemorystream);
return image;
}
这种方式保存图片比较安全
大致的步骤,就是我们首先要获得文件的路径,无论是通过上传控件和文本框,还是手动输入等,只要能获得路径就可以了
然后我们就可以利用上面的方法,将文件资源转换为二进制放到数据库里,数据库字段可以使用image类型,或者字符串,到时候转换下就可以了
最后我们就可以从数据库中读取字节,转换成image,或者以流的方式输出图片都可以了(这种一般用于asp.net输入图片)
asp.net输入流的代码如下:
{
byte[] bb = SetImageToByteArray("E:\\regedit.jpg");
System.Drawing.Image img = ReturnPhoto(bb);
//设定输出文件的类型
Response.ContentType = "image/jpg";
//输出图片文件二进制数据
Response.BinaryWrite(bb);
}
如果是winForm就可以直接通过转换过的image赋值就可以了
System.Drawing.Image img = ReturnPhoto(bb);
pictureBox1.Image = img;
C#将image中的显示的图片转换成二进制的更多相关文章
- [转]C#将image中的显示的图片转换成二进制
本文转自:http://www.cnblogs.com/shuang121/archive/2012/07/09/2582654.html .将Image图像文件存入到数据库中 我们知道数据库里的Im ...
- java中如何把图片转换成二进制流的代码
在学习期间,把开发过程经常用到的一些代码段做个备份,下边代码内容是关于java中如何把图片转换成二进制流的代码,应该能对各朋友也有用处. public byte[] SetImageToByteArr ...
- C#图片转换成二进制流并且保存到sql server数据库
注意:我要存储文件二进制流的列的类型是text,不是image类型. 我已经实现了从数据库中读取text类型的二进制流,,现在就是不知道怎么存进去. 我的部分关键代码: StreamReader sr ...
- java将图片转换成二进制
package com.oumyye.图片; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; imp ...
- Unity3D:Text在Inspector面板中中无法显示,需转换成UTF-8格式
环境:Win10 读取text内容后unity报错:Input string was not in the correct format 同时在Inspector面板中无法预览Text文本内容 随后发 ...
- 减少HTTP请求之将图片转成二进制并生成Base64编码,可以在网页中通过url查看图片(大型网站优化技术)
在网站开发过程中,对于页面的加载效率一般都想尽办法求快.那么,怎么让才能更快呢?减少页面请求 是一个优化页面加载速度很好的方法.上一篇博文我们讲解了 “利用将小图标合成一张背景图来减少HTTP请求”, ...
- 小tip: 使用CSS将图片转换成模糊(毛玻璃)效果
去年盛夏之时,曾写过“小tip: 使用CSS将图片转换成黑白”一文,本文的模式以及内容其实走得是类似路线.CSS3 → SVG → IE filter → canvas. 前段时间,iOS7不是瓜未熟 ...
- [转] 小tip: 使用CSS将图片转换成模糊(毛玻璃)效果 ---张鑫旭
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=3804 去年盛夏之时, ...
- 使用CSS将图片转换成黑白(灰色、置灰)z转
小tip: 使用CSS将图片转换成黑白(灰色.置灰) by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.c ...
随机推荐
- Nutch+Lucene搜索引擎开发实践
网络拓扑 图 1 网络拓扑图 安装Java JDK 首先查看系统是否已经安装了其它版本号的JDK,假设有,先要把其它版本号的JDK卸载. 用root用户登录系统. # rpm-qa|grep gcj ...
- Java多线程的wait(),notify(),notifyAll()
在多线程的情况下.因为多个线程与存储空间共享相同的过程,同时带来的便利.它也带来了访问冲突这个严重的问题. Java语言提供了一种特殊的机制来解决这类冲突,避免同一数据对象由多个线程在同一时间访问. ...
- JDK基本介绍
JDK这是Java Development Kit 缩写,中国被称为Java开发套件.由SUN该公司提供.这是Java应用程序开发提供了编译和执行环境,所有的Java写程序都依赖于它. JDK能够将J ...
- XMPP我写底层协议(零)--废话和准备开幕前
当我想写一个非常早期的一点总结.但总是忙没有时间停止做这样的事情. 秦与我的兄弟之前说的,这并不是说我没开灵.但是,因为很多事情还没有时间来写blog. 我没有完全理解,真到自己在这个位置上的时间,能 ...
- play framework2.5.
play framework2 的学习笔记 https://github.com/playframework/playframework https://github.com/playframewor ...
- cookie在vs又一次run的时候丢失
今天写个关于http cookie的demo,发现仅仅要vs又一次执行后cookie的值就会丢失,代码例如以下 protected void Page_Load(object sender, Even ...
- [LeetCode238]Product of Array Except Self
题目: Given an array of n integers where n > 1, nums, return an array output such that output[i] is ...
- PowerCmd(转)
PowerCmd 是一款Windows CMD 的增强工具,可以比普通CMD工具提供更多选项,例如: 1.多窗口集成,再也不见满屏的Cmd窗口: 2.命令日志记录,再也不怕命令滚动多快,有多少,我们都 ...
- C#启动进程之Process
在程序设计中,我们经常会遇到要从当前的程序跳到另一个程序的设计需求.也就是当前进程创建另一个进程.C#提供了Process使得我们很方便的实现. 1.Process基本属性和方法 Id //进程的Id ...
- linux下磁盘进行分区、文件系统创建、挂载和卸载(转)
任务的原因:由于,刚购买来的服务器需要将磁盘挂载到操作系统上,为了挂载磁盘首先要对磁盘进行分区,然后进行文件系统的创建,最后将磁盘挂载到操作系统上的某个目录. MBR(Master Boot Reco ...