将字节数组转换为PNG/JPG
我目前正在研究一种需要将未添加字节的数组高效转换为PNG或JPEG格式的应用程序。图像格式并不重要,只要速度很快。将字节数组转换为PNG/JPG
我试过.NET库,性能非常差。任何人都可以推荐一个好的免费软件库吗?
编辑:字节[]是一个8位灰度位图
你应该能够做这样的事情:
byte[] bitmap = GetYourImage();
using(Image image = Image.FromStream(new MemoryStream(bitmap)))
{
image.Save("output.jpg", ImageFormat.Jpeg); // Or Png
}
看here获取更多信息。
希望这会有所帮助。
+1 ...几乎是通常的做法。不过,根据用户的需求,不需要将其保存到文件系统。 –
完美。我喜欢它!这正是我正在寻找的。 –
嗨,我试图类似的东西将原始图像转换为jpeg butgetting *参数无效*异常。有任何想法吗? 'byte [] bytes = System.IO.File.ReadAllBytes(@“C:\ Input.CR2”); (Image“= Image.FromStream(new MemoryStream(bytes))) image.Save(@”C:\ output.jpg“,ImageFormat.Jpeg); }' –
我喜欢Imagemagick。 http://www.imagemagick.org/script/api.php
我知道这是使用编程库,但在那种情况下,该工具的命令行是什么? – user2284570
@ user2284570如果您在命令行上使用它,那么您将使用文件而不是字节数组。假设你的输入是PNG(一个PNG签名后跟着块),那么'convert input.png output.jpg'可能会起作用。 – ahoffer
有两个问题,这个问题:
假设你有一个灰度位图,你有两个因素需要考虑:
- 为JPG格式...什么质量的损失是可以容忍的?
- 对于PNG ...什么样的压缩级别是可以容忍的? (尽管对于我所见过的大多数事情,你没有太多的选择,所以这个选择可能可以忽略不计。)对于任何人都认为这个问题没有意义:是的,你可以改变压缩/尝试压缩的传球次数;查看Ifranview或其中的一些插件。
回答这些问题,然后您可能能够找到您的原始答案。
不清楚你的意思 - 这个字节数组是以什么开头的?你能提供更多细节吗? –
你的问题并不完全清楚。 'byte []'代表什么?它是实际图像的内容吗?它是一个未压缩的位图,你想保存为JPG/PNG? – vcsjones