【发布时间】:2015-02-23 03:12:41
【问题描述】:
我需要在量化后获取 DCT 系数数组以进一步更改位(隐写术)。 我的问题是:可以说,我在图片框中有 jpeg 图像或其他任何东西。我怎样才能访问 dct coef。使用 C# 和 LibJpeg.Net 之类的库来制作这张图片?需要一个代码。在整个网络上找不到任何完整和简单的东西。此外,在 LibJpeg.Net 上看不到任何教程。
经过这一步:
BitMiracle.LibJpeg.Classic.jpeg_decompress_struct oJpegDecompress = new BitMiracle.LibJpeg.Classic.jpeg_decompress_struct();
System.IO.FileStream oFileStreamImage = new System.IO.FileStream(strImagePath, System.IO.FileMode.Open, System.IO.FileAccess.Read);
oJpegDecompress.jpeg_stdio_src(oFileStreamImage);
oJpegDecompress.jpeg_read_header(true);
BitMiracle.LibJpeg.Classic.jvirt_array<BitMiracle.LibJpeg.Classic.JBLOCK>[] JBlock = oJpegDecompress.jpeg_read_coefficients();
我现在应该做什么来编辑 dct 系数?使用.Access()?我怎么用这个?有什么例子吗?
以下:
short[] block = JBlock[c].Access(x, y);
给出这样的错误:“无法将类型 'BitMiracle.LibJpeg.Classic.JBLOCK[][]' 隐式转换为 'short[]'”
此外,在使用类似的东西时,它会在将“BitMiracle.LibJpeg.Classic.JBLOCK[][]”转换为“System.IConvertible”类型时出错。
或者也许有人知道解决我的问题的另一种简单方法?
【问题讨论】:
-
本网站旨在帮助调试您已经编写的代码,而不是为您提供代码。尝试自己弄清楚一些事情,然后在无法正常工作时发布您所写的内容。
-
我在问是否有人已经有工作并且能够分享。如果我没有示例、教程和其他有用的东西,我自己什么都想不出来。
-
varrJBlockOrgfrom this post 似乎与您有关。 -
我看到了这段代码,我使用了它,但是关于查看 dct 数组和操纵系数的问题仍然存在。也许我只是无法理解所有这些周期以及在这样的地方发生了什么:
varrJBlockNew[i].Access(iY + iTileY * iComponentHeigthInBlocks, 1)[0][iX + iTileX * iComponentWidthInBlocks] = varrJBlockOrg[i].Access(iY, 1)[0][iX];,并且无法满足我的需要。