我想阅读JPEG的原始图像数据,以便我可以在不失去任何质量的情况下对其进行操作。
我看了libjpeg.net库 http://bitmiracle.com/libjpeg .
但是,有很多代码,找不到有关阅读/编写原始块的任何信息。
主要是我想实施JPEG图像的无损编辑,并想知道该怎么做?
http://en.wikipedia.org/wiki/jpeg#lossless_editing
谢谢

更新:

基本上,我要做的是访问JPEG块数据作为某种数组,以便我可以读取数据。
然后,我想创建一个新的JPEG,并访问某种块数据阵列,我可以从其他图像中填充行。
任务似乎很容易,但问题在于libjpeg.net的文档并不清楚。
我现在已经达到了这种代码状态。

var cinfo = new BitMiracle.LibJpeg.Classic.jpeg_decompress_struct();
cinfo.jpeg_stdio_src(new System.IO.FileStream(@"C:\File.jpg", System.IO.FileMode.Open));
cinfo.jpeg_read_header(true);
cinfo.jpeg_start_decompress();

但这就是这样,我不知道在哪里可以找到MCU块的数组,或者我什至在阅读正确的结构

有帮助吗?

解决方案

也许bitmiracle.libjpeg.classic.jpeg_decompress_structs.jpeg_read_raw_data()将执行您需要的事情。

您可能还需要查看JPEGCODEC的实现 libtiff.net. 。该编解码器将libjpeg.net用于各种目的。读取未压缩的JPEG数据。

免责声明:我是图书馆的维护者之一。

其他提示

我不确定jpeglib是否具有公共功能。它们支持Jtransform_execute_transformation中的无损转换,但仅具有旋转90/280/2780,翻转,作物和转置。

您必须读取该功能的来源,以了解其如何获得块。快速查看使用

srcinfo->mem->access_virt_barray

这是PTR到功能,其中 srcinfo 是一个 j_decompress_ptr. 。它得到一个 JBLOCKARRAY 因此。

我会尝试阅读 do_flip_v 这应该是一个容易理解的转变。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top