求救啊高手求解答!!!!base64转image

风吹腚腚凉 2016-03-09 04:59:27
用的方法
public static Image Base64ToImage(string strbase64)
{
//string base64Str = "图片的BASE64字符串";
byte[] bytes = System.Convert.FromBase64String(strbase64.Replace("data:image/png;base64,", ""));
using (System.IO.MemoryStream ms = new System.IO.MemoryStream(bytes))
{
return System.Drawing.Image.FromStream(ms);
}


}



前面那个图片是转换后的,后面是转换前的。
我就是测试,女的丑了点。。。。不要在意。
仔细看头发那里图形断裂了,请问为什么啊
...全文
307 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
socg 2016-03-10
  • 打赏
  • 举报
回复
也许图片本身不是png,被你转换成png了 return System.Convert.ToBase64String(ImageToBytes(s, System.Drawing.Imaging.ImageFormat.Png)); 改成 return System.Convert.ToBase64String(ImageToBytes(s,s.RawFormat));
风吹腚腚凉 2016-03-10
  • 打赏
  • 举报
回复
我是这样做的,从H5里面拿到的一个BASE64,到服务器端转换成image,然后那个image就有点问题。 我是找到的原图看的,不是加载后拉伸不拉伸看的。 图像大的话,你不仔细看,就看不出来。但是我用的是119*119的小图就感觉有点小模糊。
风吹腚腚凉 2016-03-10
  • 打赏
  • 举报
回复
引用 12 楼 tanta 的回复:
pictureBox1.Image = Bitmap.FromFile(ofd.FileName); pictureBox2.Image = server.base64(server.base64(new Bitmap(Bitmap.FromFile(ofd.FileName)))); ===================================== 传输过程应该没问题 , 我觉得问题在这儿。两个picturebox大小不一致,导致图像在picturebox中被拉伸。
没有啊一样的啊,你们测试一下看看?
tanta 2016-03-10
  • 打赏
  • 举报
回复
pictureBox1.Image = Bitmap.FromFile(ofd.FileName); pictureBox2.Image = server.base64(server.base64(new Bitmap(Bitmap.FromFile(ofd.FileName)))); ===================================== 传输过程应该没问题 , 我觉得问题在这儿。两个picturebox大小不一致,导致图像在picturebox中被拉伸。
tcmakebest 2016-03-09
  • 打赏
  • 举报
回复
为了避免显示问题造成误解,楼主不妨把两张图的显示位置交换一下,就楼主的代码不存在图片被修改的问题.
yanran_hill 2016-03-09
  • 打赏
  • 举报
回复
问题的关键是数据是否正确还原,那样的话,你直接按字节比对看看,,把MemoryStream复制成FileStream,使用notepad++打开十六进制文件看内容,再确定是哪儿出的问题
风吹腚腚凉 2016-03-09
  • 打赏
  • 举报
回复
引用 3 楼 starfd 的回复:
是不是只是因为显示的方式不同,你将两种方式在同一个界面进行对比呢,然后你还需要确认下转换出来的字符串是一致的吗
图肯定不一样了。
「已注销」 2016-03-09
  • 打赏
  • 举报
回复
根据楼上说的情况。 那就是可能你获得的标签大小与实际图片大小不符合。 以至于保存图片的时候拉伸了。
Poopaye 2016-03-09
  • 打赏
  • 举报
回复
很明显拉伸过了
「已注销」 2016-03-09
  • 打赏
  • 举报
回复




public static string base64(Bitmap s)
{
return System.Convert.ToBase64String(ImageToBytes(s, System.Drawing.Imaging.ImageFormat.Png));
}

static byte[] ImageToBytes(Bitmap Image, System.Drawing.Imaging.ImageFormat imageFormat)
{
if (Image == null) { return null; }
byte[] data = null;
using (MemoryStream ms = new MemoryStream())
{
using (Bitmap Bitmap = Image)
{
Bitmap.Save(ms, imageFormat);
ms.Position = 0;
data = new byte[ms.Length];
ms.Read(data, 0, Convert.ToInt32(ms.Length));
ms.Flush();
}
}
return data;
}

public static Bitmap base64(string s)
{
return new Bitmap(byteArrayToImage(System.Convert.FromBase64String(s)));
}
static System.Drawing.Image byteArrayToImage(byte[] byteArrayIn)
{
if (byteArrayIn == null)
return null;
using (System.IO.MemoryStream ms = new System.IO.MemoryStream(byteArrayIn))
{
System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);
ms.Flush();
return returnImage;
}
}

OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "图片|*.png;*.jpg;*.bmp;*.gif|所有文件|*.*";
ofd.ShowDialog();
if (string.IsNullOrEmpty(ofd.FileName))
return;

pictureBox1.Image = Bitmap.FromFile(ofd.FileName);

pictureBox2.Image = server.base64(server.base64(new Bitmap(Bitmap.FromFile(ofd.FileName))));



我这样用的。
Poopaye 2016-03-09
  • 打赏
  • 举报
回复
左边那张高度119,右边117
  • 打赏
  • 举报
回复
是不是只是因为显示的方式不同,你将两种方式在同一个界面进行对比呢,然后你还需要确认下转换出来的字符串是一致的吗
  • 打赏
  • 举报
回复
你是按愿格式愿比例导出的么?
风吹腚腚凉 2016-03-09
  • 打赏
  • 举报
回复
右边眼睛那也有点问题
内容概要:本文围绕基于交替方向乘子法(ADMM)的多主体综合能源系统分布式协同优化展开研究,提出了一种兼顾系统整体性能与各主体隐私保护的分布式优化框架,并提供了完整的Matlab代码实现。研究详细构建了包含电、热、气等多种能源形式耦合的多主体综合能源系统模型,设计了基于ADMM算法的分布式求解机制,实现了在去中心化架构下的协同优化调度。文中深入分析了算法的迭代流程、收敛条件及关键参数(如惩罚因子)对优化性能的影响,通过仿真实验验证了该方法在提升能源利用效率、促进多能协同、降低运行成本方面的有效性,适用于园区微网、能源互联网等复杂场景下的分布式决策需求。; 适合人群:具备一定优化理论基础和Matlab编程能力的研究生、科研人员及从事综合能源系统、智能电网、分布式能源管理等相关领域的工程技术人员。; 使用场景及目标:①实现多主体综合能源系统中电、热、气等多能流的协同调度与优化运行;②解决传统集中式优化带来的数据隐私泄露和计算负担过重问题,支持去中心化的分布式决策模式;③为能源互联网、智慧园区、微电网等实际应用场景提供可复现、易拓展的算法原型与技术参考。; 阅读建议:建议读者结合所提供的Matlab代码进行动手实践,重点理解ADMM算法中增广拉格朗日函数的构造、变量更新规则及收敛判据的实现过程,关注惩罚参数设置对算法收敛速度与稳定性的影响,可进一步尝试将其拓展应用于其他分布式优化问题或与其他智能算法进行性能对比研究。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧