1

画像圧縮プログラムを作成していて、RGB から YCbCr に色を変換したいのですが、画像をピクセルに抽出し、各ピクセルから RBG 情報を取得するのに問題はありませんが、ピクセルを新しい YCbCr 情報と一緒にパックして生成する方法がわかりません。新しいイメージ。

RGB 情報を操作して元に戻すコードを作成すると、次のようになります。

private static int packPixel(int red, int green, int blue) {
   return (red << 16) | (green << 8) | blue;
}

public BufferedImage makeNewBufferedImage(short[][] ImageDataRed, short[][] ImageDataGreen, short[][] ImageDataBlue ) {
   int[] newBufferedImageData = new int[rows * cols];
   int index;
   for (int row = 0; row < rows; row++) {
       for (int col = 0; col < cols; col++) {
           index = (row * cols) + col;
           newBufferedImageData[index] = packPixel(ImageDataRed[row][col], ImageDataGreen[row][col], ImageDataBlue[row][col]);
       }
   }

YCbCrがより多くの情報を保持していることは知っていますが、それをまとめる方法がわかりません。誰かが私を助けることができますか?

4

1 に答える 1

1

Java Advanced Imagingは YCbCr をサポートしているようです。

于 2012-12-04T02:39:44.503 に答える