public static Image getHuidu(Image img) {
int[] aT = new int[img.getWidth() * img.getHeight()];
img
.getRGB(aT, 0, img.getWidth(), 0, 0, img.getWidth(), img
.getHeight());
int x1 = AppCanvas.getRandom(0, 255); // 10
int x2 = AppCanvas.getRandom(0, 255 - x1);// 10
int x3 = AppCanvas.getRandom(0, 255 - x1 - x2);// 235
for (int i = 0; i < aT.length; i++) {
int r = ((aT[i] >> 16) & 0x000000ff);
int g = ((aT[i] >> 8) & 0x000000ff);
int b = (aT[i] & 0x000000ff);
int gray = (r * x1 + g * x2 + b * x3) >> 8;
aT[i] = gray & 0x0000ff | (gray & 0x0000ff) << 8
| (gray & 0x0000ff) << 16;
}
return img.createRGBImage(aT, img.getWidth(), img.getHeight(), false);
}
本文介绍了一种将彩色图像转换为灰度图像的方法。通过随机选取红绿蓝通道的权重,并利用这些权重对每个像素的颜色值进行加权平均,实现色彩信息的灰度化。最终通过修改图像的RGB值来完成灰度图像的生成。


340

被折叠的 条评论
为什么被折叠?



