我需要访问 DCT 系数并应用 LSB
BitMiracle.LibJpeg.Classic.jvirt_array<BitMiracle.LibJpeg.Classic.JBLOCK>[] JBlock = oJpegDecompress.jpeg_read_coefficients();
问题是我无法访问
oJpegDecompress.Comp_info[1].Height_in_blocks
因为它是非公共(public)变量。
oJpegDecompress.Comp_info[1].Width_in_blocks
可以访问。那么现在如果我没有高度 block 的数量,我如何迭代 JBlock 来操纵系数???
最佳答案
JBlock 中将有前 3 个数组,其中包含彩色图像的可用数据。wblocks0 和 hblocks0 是前 1 个数组的宽度和高度。wblocks1 和 hblocks1 是第二个和第三个数组的宽度和高度。
int calh = (int)Math.Ceiling(img.Height / 8.0);
int calw = (int)Math.Ceiling(img.Width / 8.0);
int wblocks0 = calw % 2 == 0 ? calw : calw + 1;
int hblocks0 = calh % 2 == 0 ? calh : calh + 1;
int wblocks1 = calw % 2 == 0 ? calw / 2 : (calw + 1) / 2;
int hblocks1 = calh % 2 == 0 ? calh / 2 : (calh + 1) / 2;
关于c# - C# 中 libJPEG 中的 height_in_blocks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35475631/