如何把一张JPEG图片转换成二进制流
1)首先你得要知道这个二进制文件的内容格式,否则你可能得不到想要的数据或是乱码;2)知道二进制文件的格式后,使用 读取二进制文件.vi 获取绘制图片的数据;3)将数据进行转化后或者直接连接到 绘制还原像素图.vi ;如下图所示:
二进制转十进制的方法!!!
总方法:除二取余,然后倒序排列,高位补零即可。
举例说明:1、 正整数转成二进制还是举例说明吧,比如42转换为二进制,如图1所示操作。
42除以2得到的余数分别为010101,然后咱们倒着排一下,42所对应二进制就是101010.如图2所示更直观的表达。
计算机内部表示数的字节单位是定长的,如8位,16位,或32位。
所以,位数不够时,高位补零,所说,如图3所示,42转换成二进制以后就是。
00101010,也即规范的写法为(42)10=(00101010)2.赶紧记住吧。
2. 负整数转换成二进制方法:先是将对应的正整数转换成二进制后,对二进制取反,然后对结果再加一。
还以42为例,负整数就是-42,如图4所示为方法解释。
最后即为:(-42)10=(11010110)2.3、 小数转换为二进制的方法:对小数点以后的数乘以2,有一个结果吧,取结果的整数部分(不是1就是0喽),然后再用小数部分再乘以2,再取结果的整数部分……以此类推,直到小数部分为0或者位数已经够了就OK了。
然后把取的整数部分按先后次序排列就OK了,就构成了二进制小数部分的序列,举个例子吧,比如0.125。
如果小数的整数部分有大于0的整数时该如何转换呢?如以上整数转换成二进制,小数转换成二进制,然后加在一起就OK了。
如何将图片转换成二进制存储
1.将Image图像文件存入到数据库中我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才能存入数据库中.要这里有关数据的操作略写,我将一些代码段写成方法,方便直接调用.//根据文件名(完全路径)public byte[] SetImageToByteArray(string fileName){FileStream fs = new FileStream(fileName, FileMode.Open);int streamLength = (int)fs.Length;byte[] image = new byte[streamLength];fs.Read(image, 0, 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, 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[])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,0, mybyte.Length);image = Image.FromStream(mymemorystream);return image; }
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[] buf = new byte[1024];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.lengthtry{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.lengthif(data.length>200000) return "0x";StringBuffer sb = new StringBuffer();int buf[] = new int[data.length];//byte数组转化成十进制for(int k=0;kbuf[k] = data[k]}//十进制转化成十六进制for(int k=0;kif(buf[k]else sb.append(Integer.toHexString(buf[k]));}return "0x"+sb.toString().toUpperCase();}
如何用javascript实现图片与二进制的转换?
js是做不了文件和二进制的互相转换的,而且按照你的要求是存取数据库,js做不到的。
用别的方式(Java或者C#等等)去连接数据库,把图片文件作为blob对象(二进制大对象)类型存入数据库------------------------------------------------------js不能把图片文件以二进制表示
二进制转换
十进制转换成二进制只能使用小数进行转换,因此先将9/16化为小数,为0.5625,然后根据以下规则进行转换:十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。
具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
具体做法如下:小数部分*2 取出整数 0.5625*2=1.125 10.125*2=0.25 00.25*2=0.5 00.5*2=1 1运算结束。
自下向上排列取出的整数,得到结果9/16=[0.5625]10=[0.1001]2若除不尽,则根据所需精度转换即可!十进制与二进制小数间的转换在除不尽的情况下只能取近似值。