Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中使用libpng#_C#_.net_Image_Libpng - Fatal编程技术网

C# 在C中使用libpng#

C# 在C中使用libpng#,c#,.net,image,libpng,C#,.net,Image,Libpng,如果要以PNG格式保存图像,可以使用.Net的ImageFormat类。 但是这个类没有实现对PNG文件的压缩。 由于某些原因,我无法将文件保存为JPEG格式。 经过研究,我知道libpng是官方的PNG参考库。 但是我找不到在.net框架中使用它的任何东西。 有人知道这个库并在.NET中使用它吗 感谢高级版。由于libpng是用C编写的(ANSI C,甚至更好),您可以在该库和您的C#应用程序之间搭建一座桥梁-> 还有其他的选择,例如,ImageMagick到.net的端口,但在这种情况下,

如果要以
PNG
格式保存图像,可以使用.Net的
ImageFormat
类。 但是这个类没有实现对
PNG
文件的压缩。 由于某些原因,我无法将文件保存为JPEG格式。 经过研究,我知道
libpng
是官方的PNG参考库。 但是我找不到在.net框架中使用它的任何东西。 有人知道这个库并在.NET中使用它吗


感谢高级版。

由于libpng是用C编写的(ANSI C,甚至更好),您可以在该库和您的C#应用程序之间搭建一座桥梁->

还有其他的选择,例如,
ImageMagick
到.net的端口,但在这种情况下,我仍然不清楚这是一个什么样的项目,我不知道它是不是正式的,如果它已经死了还是活了,如果你感兴趣,你可以搜索这个名字

简单地说,PNG是一个开放的标准,JPEG是一个充满专利和版税的世界,因此一些图书馆不提供JPEG功能,或者提供有限的JPEG相关功能/算法。PNG它也是一个真正的图像标准,关于文件格式定义,jpeg更像是一个容器。

是一个非常好的库,允许您(除其他外)创建PNG文件。 是此库的.Net包装器。使用此库,您可以简单地转换/创建图像格式。例如,从他们的:

另一种选择:

但是这个类没有实现PNG文件的压缩


那到底是什么意思?PNG是经过设计压缩的。

你试过了吗?@Vinoth我看到了这个页面,但没有说如何使用libpng谢谢你的回复。我在寻找压缩PNG文件的方法。你有什么建议?JPEG不是一个“专利和版税充斥的世界”。您可能会将JPEG与JPEG2000混淆。谢谢您的回答,压缩如何?有关如何使用压缩的文档可在此处找到:。请注意,您不一定需要使用库:您也可以使用进程在命令行中简单地进行转换。例如,这是否也适用于预过滤?我认为这取决于软件。
using (MagickImage image = new MagickImage("Snakeware.gif"))
{
   image.Write("Snakeware.jpg");
}