图片转换成二进制(Java中如何把图片转换成二进制流)

本文目录
- Java中如何把图片转换成二进制流
- C#怎么把图片转换成二进制数据
- 在ASP.NET中怎么图片转换二进制
- 怎么把JPG格式图片转化成二进制数据
- 怎么将图片转换成二进制,存入数据库,然后怎么读出来并显示
- Excel 如何将图片文件转换成二进制数组
- 如何把一张JPEG图片转换成二进制流
- 图片能转成2进制的代码吗
Java中如何把图片转换成二进制流
Java中将图片转为二进制流只需要使用FileImageInputStream取得图片文件,然后使用ByteArrayOutputStream 写入到二进制流中即可,下面是详细代码:
//图片到byte数组
public byte image2byte(String path){
byte data = null;
FileImageInputStream input = null;
try {
input = new FileImageInputStream(new File(path));
ByteArrayOutputStream output = new ByteArrayOutputStream();
byte;
int numBytesRead = 0;
while ((numBytesRead = input.read(buf)) != -1) {
output.write(buf, 0, numBytesRead);
}
data = output.toByteArray();
output.close();
input.close();
}
catch (FileNotFoundException ex1) {
ex1.printStackTrace();
}
catch (IOException ex1) {
ex1.printStackTrace();
}
return data;
}
另外,如果需要将byte存回图片或转为String,则:
//byte数组到图片
public void byte2image(byte data,String path){
if(data.length《3||path.equals("")) return;
try{
FileImageOutputStream imageOutput = new FileImageOutputStream(new File(path));
imageOutput.write(data, 0, data.length);
imageOutput.close();
System.out.println("Make Picture success,Please find image in " + path);
} catch(Exception ex) {
System.out.println("Exception: " + ex);
ex.printStackTrace();
}
}
//byte数组到16进制字符串
public String byte2string(byte data){
if(data==null||data.length《=1) return "0x";
if(data.length》200000) return "0x";
StringBuffer sb = new StringBuffer();
int buf;
//byte数组转化成十进制
for(int k=0;k《data.length;k++){
buf);
}
//十进制转化成十六进制
for(int k=0;k《buf.length;k++){
if(buf));
else sb.append(Integer.toHexString(buf));
}
return "0x"+sb.toString().toUpperCase();
}
C#怎么把图片转换成二进制数据
用二进制流的形式打开图片,读取出二进制代码存入数据库即可。
FileStream Pic = new FileStream(sFileName, FileMode.Open);//sFileName是图片路径
byte;
Pic.Read(PicByte, 0, PicByte.Length);
在ASP.NET中怎么图片转换二进制
首先数据库里面有一字段类型为image,我这里是一个窗体应用程序,也是将图片以二进制的形式保存至数据库的,思路是一样的
byte photo;
public byte Photo
{
get { return photo; }
set { photo = value; }
}
FileStream fs;
string fileName = string.Empty;
private void btnChooose_Click(object sender, EventArgs e)
{
OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Filter = "*.jpg|*.jpg|*.gif|*.gif|*.bmp|*.bmp";
if (fileDialog.ShowDialog() == DialogResult.OK)
{
fileName = fileDialog.FileName;
fs = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
pictureBox.Image = Image.FromStream(fs);
fs.Close();
}
}
private void btnSave_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(fileName))
{
fs = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
byte;
fs.Read(imageByte, 0, (int)fs.Length);
Photo = imageByte;
fs.Close();
AddImage();
}
else
{
MessageBox.Show("请选择图片");
}
}
private void AddImage()
{
using (SqlConnection connection = new SqlConnection(connString))
{
connection.Open();
SqlCommand command = new SqlCommand("PROC_ADDIMAGE", connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("@IMAGE", SqlDbType.Image).Value = Photo;
int rows = command.ExecuteNonQuery();
if (rows 》 0)
{
MessageBox.Show("添加成功");
}
else
{
MessageBox.Show("添加失败");
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
int index;
/// 《summary》
/// 获取图片
/// 《/summary》
/// 《param name="sender"》《/param》
/// 《param name="e"》《/param》
private void btnGetImage_Click(object sender, EventArgs e)
{
/// 《summary》
/// 存图片的集合
/// 《/summary》
IList《Form1》 form1List = new List《Form1》();
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
SqlCommand command = new SqlCommand("PROC_GETIMAGE", conn);
command.CommandType = CommandType.StoredProcedure;
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Form1 form1 = new Form1();
form1.Photo = (byte;
form1List.Add(form1);
}
}
}
if (form1List.Count == 1)
{
MemoryStream imageStream = new MemoryStream(form1List.Photo);
pictureBox.Image = Image.FromStream(imageStream);
}
else if (form1List.Count 》 1)
{
index++;
if (index 《 form1List.Count)
{
btnGetImage.Text = "下一张";
MemoryStream imageStream = new MemoryStream(form1List.Photo);
pictureBox.Image = Image.FromStream(imageStream);
}
else
{
index=0;
MemoryStream imageStream = new MemoryStream(form1List.Photo);
pictureBox.Image = Image.FromStream(imageStream);
}
}
else
{
MessageBox.Show("存中还没有图片");
}
}
/// 《summary》
/// 清除图片
/// 《/summary》
/// 《param name="sender"》《/param》
/// 《param name="e"》《/param》
private void btnClear_Click(object sender, EventArgs e)
{
pictureBox.Image = null;
}
怎么把JPG格式图片转化成二进制数据
作为2二进制文件打开,一个字节一个字节地读入,写出,直到EOF(文件结束符)。当然写出时要按数据库约定的方式。
下面作为普通文件输出
FILE *fin,*fout;
void main(){int c;fin=fopen( duck.jpg,rb); // 作为2二进制文件打开
fout=fopen(tmp.jpg,wb);while(1){c=fgetc(fin); // 一个字节一个字节地读入
fputc ( c , fout ); // 改此句,让它符合数据库约定。}}
怎么将图片转换成二进制,存入数据库,然后怎么读出来并显示
1.将Image图像文件存入到数据库中
我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才能存入数据库中.
要这里有关数据的操作略写,我将一些代码段写成方法,方便直接调用.
//根据文件名(完全路径)
public byte SetImageToByteArray(string fileName)
{
FileStream fs = new FileStream(fileName, FileMode.Open);
int streamLength = (int)fs.Length;
byte;
fs.Read(image, 0, streamLength);
fs.Close();
return image;
}
//另外,在ASP.NET中通过FileUpload控件得到的图像文件可以通过以下方法
public byte SetImageToByteArray(FileUpload FileUpload1)
{
Stream stream = FileUpload1.PostedFile.InputStream;
byte;
stream.Read(photo, 0, FileUpload1.PostedFile.ContentLength);
stream.Close();
return photo;
}
2.从SQL Server数据库读取Image类型的数据,并转换成bytes或Image图像文件
//要使用SqlDataReader要加载using System.Data.SqlClient命名空间
//将数据库中的Image类型转换成byte
public byte SetImage(SqlDataReader reader)
{
return (byte;//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,0, mybyte.Length);
image = Image.FromStream(mymemorystream);
return image;
}
Excel 如何将图片文件转换成二进制数组
方法一:
在Excel中,如果要将十进制转换为二进制编码,可以使用DEC2BIN函数将十进制转换为二进制编码。
如上图所示,在B2单元格输入公式:
=DEC2BIN(A2)
按回车键即可将十进制转换为二进制编码。返回转换后的二进制。
Excel2007可使用DEC2BIN函数将十进制转换为二进制编码。
如何把一张JPEG图片转换成二进制流
这个太简单了,声明一个内存流或文件流对象,再调用jpg对象的savetostream就可以了
图片能转成2进制的代码吗
可以转的,可以把图片序列化哼二进字节数组,也可以把二进制字节数组反序列化为图片。使用BinaryFormatter类来操作,图片质量不会有损失。 给你个示例。
/// 《summary》
/// 把对象序列化并返回相应的字节
/// 《/summary》
/// 《param name="pObj"》需要序列化的对象《/param》
/// 《returns》byte《/returns》
public byte SerializeObject(object pObj)
{
if (pObj == null)
return null;
System.IO.MemoryStream _memory = new System.IO.MemoryStream();
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(_memory, pObj);
_memory.Position = 0;
byte;
_memory.Read(read, 0, read.Length);
_memory.Close();
return read;
}
/// 《summary》
/// 把字节反序列化成相应的对象
/// 《/summary》
/// 《param name="pBytes"》字节流《/param》
/// 《returns》object《/returns》
public object DeserializeObject(byte pBytes)
{
object _newOjb = null;
if (pBytes == null)
return _newOjb;
System.IO.MemoryStream _memory = new System.IO.MemoryStream(pBytes);
_memory.Position = 0;
BinaryFormatter formatter = new BinaryFormatter();
_newOjb = formatter.Deserialize(_memory);
_memory.Close();
return _newOjb;
}

更多文章:
在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)
2026年10月11日 05:20
countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)
2026年10月11日 03:30
正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)
2026年10月11日 03:00
orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)
2026年10月10日 23:00
display的用法(display是什么意思 详解display的含义和用法)
2026年10月10日 22:00
html全部居中代码(怎么让网页居中显示,html如何让网页居中)
2026年10月10日 21:10





