height_in_blocks 在 C# 中的 libJPEG 中

height_in_blocks in libJPEG in C#

我需要访问 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 

可以访问。那么现在如果我没有高度块的数量,我该如何遍历 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;