C#中图片转BASE64结果错误

问题描述

在做一个小东西,其中有一个功能是把C盘根目录下的一个BMP文件转换成JPG文件,同时将这个图片文件编码成base64StringImagefilename=@“C:TEMP.BMP”;Bitmapbmp=newBitmap(Imagefilename);this.pictureBox1.Image=bmp;MemoryStreamms=newMemoryStream();bmp.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);byte[]arr=newbyte[ms.Length];ms.Position=0;ms.Read(arr,0,(int)ms.Length);ms.Close();Stringstrbaser64=Convert.ToBase64String(arr);base64text.Text=strbaser64;

要转成JPG再编码base64的原因是如果直接转码bmp报错但是这样转码后,得到的base64结果是错的,无法还原为图片百度过很久,没搞明白所以然……

解决方案

本帖最后由 ynwr_xj 于 2016-02-23 16:26:47 编辑
解决方案二:
{returnSystem.Convert.ToBase64String(ImageToBytes(s,System.Drawing.Imaging.ImageFormat.Png));}staticbyte[]ImageToBytes(BitmapImage,System.Drawing.Imaging.ImageFormatimageFormat){if(Image==null){returnnull;}byte[]data=null;using(MemoryStreamms=newMemoryStream()){using(BitmapBitmap=Image){Bitmap.Save(ms,imageFormat);ms.Position=0;data=newbyte[ms.Length];ms.Read(data,0,Convert.ToInt32(ms.Length));ms.Flush();}}returndata;}privateBitmapbase64(strings){returnnewBitmap(byteArrayToImage(System.Convert.FromBase64String(s)));}System.Drawing.ImagebyteArrayToImage(byte[]byteArrayIn){if(byteArrayIn==null)returnnull;using(System.IO.MemoryStreamms=newSystem.IO.MemoryStream(byteArrayIn)){System.Drawing.ImagereturnImage=System.Drawing.Image.FromStream(ms);ms.Flush();returnreturnImage;}}

解决方案三:
staticstringbase64(Bitmaps){returnSystem.Convert.ToBase64String(ImageToBytes(s,System.Drawing.Imaging.ImageFormat.Png));}staticbyte[]ImageToBytes(BitmapImage,System.Drawing.Imaging.ImageFormatimageFormat){if(Image==null){returnnull;}byte[]data=null;using(MemoryStreamms=newMemoryStream()){using(BitmapBitmap=Image){Bitmap.Save(ms,imageFormat);ms.Position=0;data=newbyte[ms.Length];ms.Read(data,0,Convert.ToInt32(ms.Length));ms.Flush();}}returndata;}privateBitmapbase64(strings){returnnewBitmap(byteArrayToImage(System.Convert.FromBase64String(s)));}System.Drawing.ImagebyteArrayToImage(byte[]byteArrayIn){if(byteArrayIn==null)returnnull;using(System.IO.MemoryStreamms=newSystem.IO.MemoryStream(byteArrayIn)){System.Drawing.ImagereturnImage=System.Drawing.Image.FromStream(ms);ms.Flush();returnreturnImage;}}

没贴完整。补齐一下。-_-。sorry!

时间: 2024-09-26 22:59:52

C#中图片转BASE64结果错误的相关文章

Struts2中图片以base64方式上传至数据库_java

1.页面 这里输入代码 <div> <span id="uploadImg" style="margin:50px;background-color:#ddd;display:inline-block;height:130px;width:200px;"> <span style="color:#bbb;font-weight:600;border:2px #ccc dashed;font-size:20px;text-ali

【源码】java中图片和Base64互相转换源码

package cn.com.css.misps.graph.util; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; /

图片-git中使用push命令出现错误,如下图所示

问题描述 git中使用push命令出现错误,如下图所示 解决方案 远程已经有了部分提交,所以没办法直接提交.你先使用git fetch 获取远端最新代码,合并后再push

【XCode7+iOS9】http网路连接请求、MKPinAnnotationView自定义图片和BitCode相关错误

更新了iOS9和XCode7,之后,Swift变成了2.0,有了新的语法习惯,iOS也加强了安全方面的限制.我们原本的项目就会出现不少问题.先来看我之前的项目中出现的3个错误吧和相关的解决办法吧. 1. HTTP网络请求错误. 因为iOS9默认使用HTTPS的链接方式,所以如果你的程序以前使用的是HTTP方式进行网络链接,那么更新了之后,你的程序可能不会有bug,但是当运行的时候,遇到访问HTTP的接口时,就会出现这样的错误提示: App Transport Security has block

在Web应用中图片和长文本的处理策略总结

web|策略  不难认识到,在web应用中图片/多媒体和长文体的处理策略,很大程度上决定中一个系统的性能和负载能力.    这几天在处理图片上载的同时,也在考虑着最合理的对图片和长文本的存储.多年前,我喜欢把图片和长文本都存进oracle中,目的是备份方便,只需要 exp就可以连图片一起备分起来,不用一个个地照顾目录.但是缺点也随着访问量上升而一点点显示出来:一来是大大加重了数据库服务器的负担:二来使用 BLOG/CLOG并不是SQL92支持的标准SQL,令开发持久性的对象变得复杂;其三,ora

PS中最容易犯的错误

  即使是Photoshop老手仍然有可能会犯PS初学者的一些错误.本PS教程就跟大家一起总结一下哪些是PS过程中最容易犯的错误,以及探讨如何避开它们.一起来学习吧: 1.使用错误的图像模式 操作菜单变成灰色?颜色看起来不对劲?当你遇到这些问题的时候,应该停下来,不要再编辑.这些可能就是使用错误的图像模式而引起的问题.在主菜单中选择"图像>模式",在这里确保选择正确的图像模式.如果你不知道应该选择哪种图片模式,那么请选择RGB模式吧!因为有99%的机会,图像采用RGB模式比较适合

那些PS中最容易犯的错误

  即使是Photoshop老手仍然有可能会犯PS初学者的一些错误.本PS教程就跟大家一起总结一下哪些是PS过程中最容易犯的错误,以及探讨如何避开它们.一起来学习吧: PS中有些错误很容易犯 1.使用错误的图像模式 操作菜单变成灰色?颜色看起来不对劲?当你遇到这些问题的时候,应该停下来,不要再编辑.这些可能就是使用错误的图像模式而引起的问题.在主菜单中选择"图像>模式",在这里确保选择正确的图像模式.如果你不知道应该选择哪种图片模式,那么请选择RGB模式吧!因为有99%的机会,图

Cocos2d-x优化中图片优化

在2D游戏中图片无疑是最为重要的资源文件它会被加载到内存中转换为纹理由GPU贴在精灵之上渲染出来.它能够优化的方面很多包括图片格式.拼图和纹理格式等下面我们从这几个方面介绍一下图片和纹理的优化.1.选择图片格式要回答这个问题我们需要先了解一下目前在移动平台所使用的图片文件格式以及这些图片格式Cocos2d-x是否支持.图片格式有很多但是在移动平台主要推荐使用的PNGJPG也可以考虑而其它的文件格式最好转化成为PNG格式.我们先了解一下它们的特点.1.PNG文件PNG文件格式设计目的是替代GIF和

java-从 url 中下载文件时的错误

问题描述 从 url 中下载文件时的错误 我想从url中读取一个文件,然后定义它为一个File Type public File fileFromUrl(String str) throws IOException { File file = new File ("image.png"); URL url = new URL (str); InputStream input = url.openConnection().getInputStream(); try { OutputStr