public static void sample(BufferedImage image) {
int width = image.getWidth();
int height = image.getHeight();
int value[][] = new int[width][height];
int valueR[][] = new int[width][height];
int valueG[][] = new int[width][height];
int valueB[][] = new int[width][height];
for (int j = 0; j < height; j++) {
for (int i = 0; i < width; i++) {
int pixel = image.getRGB(i, j);
value[i][j] = pixel;
Color c = new Color(pixel);
valueR[i][j]= c.getRed();
valueG[i][j] = c.getGreen();
valueB[i][j] = c.getBlue();
System.out.println("Red value = "+valueR[i][j]);
System.out.println("Green value ="+valueG[i][j]);
System.out.println("Blue value"+valueB[i][j]);
}
}
}
上記のコードは、画像の RGB 値とピクセル カラー値を別々に配列に格納するものです。
public static BigInteger modPow(BigInteger a1, BigInteger e, BigInteger n) {
BigInteger r = 1;
for (int i = e.bitLength() - 1; i >= 0; i--) {
r = (r.multiply(r)).mod(n);
if (e.testBit(i)) {
r = (r.multiply(a1)).mod(n);
}
}
System.out.println("C value = " + r);
int lng = 3;
BigInteger bi = BigInteger.valueOf(lng);
BigInteger a = r.divide(bi);
BigInteger b = r.mod(bi);
System.out.println("pixel position a = " + a);
System.out.println("modulus value b = " + b);
return r;
}
上記のコードでは、秘密のビットを埋め込む必要があるピクセル位置を見つけています。したがって、メッセージを埋め込むためにその特定のピクセルに移動する必要があります。しかし、前のコードでは、ピクセルの色を配列 value[][] に格納しています。配列 value[][] を検索して、最後のコードで取得したピクセル位置を取得します。
注: a1 は埋め込む情報ファイルの現在のビットの位置です {e,n} は公開鍵です
私の質問は、ピクセル位置を見つける方法ですか?