C#中libJPEG中的height_in_blocks

时间:2016-02-18 07:47:20

标签: c# jpeg libjpeg steganography dct

我需要访问DCT系数并在

中应用LSB
BitMiracle.LibJpeg.Classic.jvirt_array<BitMiracle.LibJpeg.Classic.JBLOCK>[] JBlock = oJpegDecompress.jpeg_read_coefficients();

问题是我无法访问

oJpegDecompress.Comp_info[1].Height_in_blocks

因为它是非公共变量。

oJpegDecompress.Comp_info[1].Width_in_blocks 

可以访问。所以现在如果我没有高度的块数,我怎么能遍历JBlock来操纵系数???

1 个答案:

答案 0 :(得分:2)

在JBlock中将有前3个可用数据用于彩色图像.wblocks0和hblocks0是前1个数组的宽度和高度.wblocks1和hblocks1是第2和第3个数组的宽度和高度。

        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;