如何将base64位的字节数组转换成图片并显示
在C#中
图片到byte[]再到base64string的转换:
Bitmap bmp = new Bitmap(filepath);
MemoryStream ms = new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
byte[] arr = new byte[ms.Length];
ms.Position = 0;
ms.Read(arr, 0, (int)ms.Length);
ms.Close();
string pic = Convert.ToBase64String(arr);
base64string到byte[]再到图片的转换:
byte[] imageBytes = Convert.FromBase64String(pic);
//读入MemoryStream对象
MemoryStream memoryStream = new MemoryStream(imageBytes, 0, imageBytes.Length);
memoryStream.Write(imageBytes, 0, imageBytes.Length);
//转成图片
Image image = Image.FromStream(memoryStream);
//base64字符串转化成图片
public static boolean GenerateImage(String imgStr)
{ //对字节数组字符串进行Base64解码并生成图片
if (imgStr == null) //图像数据为空
return false;
BASE64Decoder decoder = new BASE64Decoder();
try
{
//Base64解码
byte[] b = decoder.decodeBuffer(imgStr);
for(int i=0;i<b.length;++i)
{
if(b[i]<0)
{//调整异常数据
b[i]+=256;
}
}
//生成jpeg图片
String imgFilePath = "d://222.jpg";//新生成的图片
OutputStream out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
out.close();
return true;
}
catch (Exception e)
{
return false;
}
}
希望可以帮到你。
写一个servlet(假设名字是servletImg),页面的参数就是 id,然后将从DB得到的图像的byte[],通过流输出给页面。
页面还是 <img src="servletImg?id=1234" />
这样的逻辑,才行。
在C#中
图片到byte[]再到base64string的转换:
Bitmap bmp = new Bitmap(filepath);
MemoryStream ms = new MemoryStream();
bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
byte[] arr = new byte[ms.Length];
ms.Position = 0;
ms.Read(arr, 0, (int)ms.Length);
ms.Close();
string pic = Convert.ToBase64String(arr);
base64string到byte[]再到图片的转换:
byte[] imageBytes = Convert.FromBase64String(pic);
//读入MemoryStream对象
MemoryStream memoryStream = new MemoryStream(imageBytes, 0, imageBytes.Length);
memoryStream.Write(imageBytes, 0, imageBytes.Length);
//转成图片
Image image = Image.FromStream(memoryStream);
Base64编码有何用处?
揭秘Base64编码的奇妙用途在信息传输的世界里,Base64编码就如同一座桥梁,巧妙地解决了文本协议与非文本数据之间的交流难题。它的初衷是为了在那些仅仅支持文本格式的早期通信协议,如POP和SMTP,能够勉强接纳多媒体内容,如图片、音频和视频等。想象一下,当图片和视频的出现挑战了这些传统文本协议的界限,Ba...
java和asp.net 分别将同一张图片转换成base64位后,大小不一样,无法通...
Java的byte是-127到+127,而C#的是[0,255]
文字编码总结
也就是说,当最后剩余两个八位字节(2个byte)时,最后一个6位的Base64字节块有四位是0值,最后附加上两个等号;如果最后剩余一个八位字节(1个byte)时,最后一个6位的base字节块有两位是0值,最后附加一个等号。 UTF-7是一个修改版Base64(Modified Base64)。 主要是将UTF-16的数据,用Base64的方法编码为可打印...
一个马来西亚的朋友给我发的邮件,可到电脑里全是乱码,请哪位好心人帮忙...
>>>Base64是MIME标准编码之一。Base64 encode编码方式是将3个字节(8位)用4个字节(6位)表示,由于编码后的内容是6位的,因此可以避免第8位被截掉。Base64 encode“乱码”大体格式为:MIME-Version:1.0Content-Type:text\/plain; charset="us-ascii〃Content-Transfer-Encoding:base64Status:RyrE68shis+o\/IMTcsrvE...
收到一封qq邮件,可是只能看到主题开启看不到内容
2.Base64 encode“乱码” >>>Base64是MIME标准编码之一。Base64 encode编码方式是将3个位元组(8位)用4个位元组(6位)表 示,由于编码后的内容是6位的,因此可以避免第8位被截掉。Base64 encode“乱码”大体格式为: MIME-Version:1.0 Content-Type:text\/plain; charset="us-ascii〃 Content-Transfer-Encoding...
前端上传文件的几种方法
ajax(url,{data} ,function(){}) }上面获得的data可以用来实现图片上传前的本地预览,也可以用来发送base64数据给后端然后返回该数据块对应的地址。优点: 同第二种 缺点:一次性发送大量的base64数据会导致浏览器卡顿,服务器端接收这样的数据可能也会出现问题。
语言乱码问题
MIME\/BASE64 encode:该编码方式将3个字节(8位)用4个字节(6位)表示,由于编码后的内容是6位的,因此可避免第8位被截掉,大体格式为: MIME-Version:1.0 Content-Type:text\/plain; charset="us-ascii" Content-Transfer-Encoding:base64 Status:R SGmhQbF6pm6hSafapmK69Lj0pFexb6q+sXqsT6Skp OWrSKXzsN3DRLF...
电脑中的 bind()错误是什么?
你将需要获取base64编码的密钥awwLOtRfpGE+rRKF2+DEiw== 并在配置你的服务器命名设置中使用它。例如: J,6Ir\/f"b key tsig-key. { algorithm hmac-md5; secret "awwLOtRfpGE+rRKF2+DEiw=="; }; rkn#b:Dxq zone "ddns.dregis.com" { 3K|*Bd()t ... 0z]o0= { ... l40ii...
几个关于魔兽争霸3的问题~~[高手进]
由于一个tile可以被多个map引用,所以layer的data属性值使用base64编码、使用gzip压缩的一个32位整数的数组,它代表了tile的全局id--firstgid。每个tile内部使用自己的local id,而firstgid作为在多个map中区分tile的标识。注意此软件没有导出为map数组的功能,只能使用View->Show Coordinates显示坐标。5.优...
电脑乱码
建议对uuencode\/UUDeview编码方式用uuencoding作信头,对mpack编码方式用base64 encoding作信头。 如果发\/收件人之间远隔万里,则传送过程中,第八位将可能被截掉。这时最佳先在正文中用中文给收件人发一封测试信,并了解对方能否正确收到邮件正文。如果第八位被截掉,则收件人将会看到一些乱码,而不是上述的uu\/b64\/Qp...
车罗枯草: 将byte数组转换成string BASE64Encoder enc=new BASE64Encoder(); String 转换后的string=enc.encode(byte数组); 说明:BASE64Encoder工具可对文字,或字符串进行Base64编码/解码,若开发过程中用到Base64算法,它会成为您有良伴.
吴川市13150214192: 怎么使用 Convert.FromBase64String 这个函数 - ?
车罗枯草: 这个这样写 String s=Base64.encode(byte[])字节数组转换字符串 byte[] b=Base64.encode(String str) 字符串转换成字节数组
吴川市13150214192: 如何将base64编码转变为图片 - ?
车罗枯草: 先解码 base64编码的文本,解码后得到图片的字节集数据,你可以直接把这个字节集数据写入到空文件里面,然后改好后缀名就是一张图片了
吴川市13150214192: 在C#中如何把string转为base64String - ?
车罗枯草: 具体做法如下.1、到http://commons.apache.org/codec/download_codec.cgi下载类库,解压后使用commons-codec-1.4.jar2、代码:import org.apache.commons.codec.binary.Base64;...String base64 = Base64.encodeBase64URLSafeString(userName.getBytes());System.out.println(base64);...
吴川市13150214192: 如何将Bitmap位图与base64字符串相互转换 - ?
车罗枯草: 无论要对图片,还是mp3,还是电影文件,本质都是2进制串.所以你缺的不是位图到base64字符串的转换,而是一套Base64编码解码算法.不清楚你的语言,以java为例.jdk1.8之前有api:Base64Encoder,Base64Decoder分别编码/解码.1.8除了更加厉害的 “Base64”.当然可以搜索各种各样的第三方jar包罗.对于你这个文件处理需求,推荐这个:http://download.csdn.net/download/liuzhao2011/9963611.下载后,将java文件考项目中,调好包路径即可.大文件处理速度快,可以直接输出编码后的文件(代码中有例子).使用方便无痛苦.
吴川市13150214192: 将base64位转换成png图片的java代码 - ?
车罗枯草: //base64字符串转化成图片public static boolean GenerateImage(String imgStr){ //对字节数组字符串进行Base64解码并生成图片if (imgStr == null) //图像数据为空return false;BASE64Decoder decoder = new BASE64Decoder();try{//Base...
吴川市13150214192: C#base64转视频 - ?
车罗枯草: 你把文件读取进来(字节数组), 然后用System.Convert.ToBase64String()方法就行了 不过, 视频文件通常都很大, 你可能需要把一个文件拆成多个部分进行转换
吴川市13150214192: 如何在读取word文档时,将byte转换成string类型 - ?
车罗枯草: 具体做法:将byte数组转换成string BASE64Encoder enc=new BASE64Encoder(); String 转换后的string=enc.encode(byte数组);将string转换回来成为byte数组.
吴川市13150214192: 如何将base64加密的字符串转换成image显示在网页上 - ?
车罗枯草: import sun.misc.BASE64Encoder; public static boolean GenerateImage(String imgStr, String imgFilePath) {if (imgStr == null) // 图像数据为空return false;BASE64Decoder decoder = new BASE64Decoder();try {// Base64解码byte[] bytes = ...
吴川市13150214192: 怎么把base64编码成byte数组 - ?
车罗枯草: String str = new String(Base64.encode(baos.toByteArray())); 把 byte 数组 编写成 字符串