我試圖使方法將BufferedImage的一種顏色更改爲不可見。
我自己找不到解決方案,所以請求您的幫助。
這裏是方法我做的:兩個類似的方法與BufferedImage,一個工作,一個不是。爲什麼?
public static BufferedImage makeWithoutColor(BufferedImage img, Color col)
{
BufferedImage img1 = img;
BufferedImage img2 = new BufferedImage(img1.getWidth(), img1.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D g = img2.createGraphics();
g.setComposite(AlphaComposite.Src);
g.drawImage(img1, null, 0, 0);
g.dispose();
for(int i = 0; i < img2.getWidth(); i++)
{
for(int j = 0; i < img2.getHeight(); i++)
{
if(img2.getRGB(i, j) == col.getRGB())
{
img2.setRGB(i, j, 0x8F1C1C);
}
}
}
return img2;
}
這裏是一個從教程中,我讀出。
public static BufferedImage makeColorTransparent(BufferedImage ref, Color color) {
BufferedImage image = ref;
BufferedImage dimg = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D g = dimg.createGraphics();
g.setComposite(AlphaComposite.Src);
g.drawImage(image, null, 0, 0);
g.dispose();
for(int i = 0; i < dimg.getHeight(); i++) {
for(int j = 0; j < dimg.getWidth(); j++) {
if(dimg.getRGB(j, i) == color.getRGB()) {
dimg.setRGB(j, i, 0x8F1C1C);
}
}
}
return dimg;
}
您是否有錯誤信息?你有沒有嘗試複製/粘貼教程,只是將'image'改爲'img1'? – talnicolas 2012-02-13 19:30:29
好的,哪個人在工作,哪個不在?如果有人正在工作什麼問題/ – ghostbust555 2012-02-13 19:30:47
高度/寬度倒序,這可能是問題嗎? – kosa 2012-02-13 19:30:51