首页 > 代码库 > 图片背景变红问题(Image->ImageBuffer)
图片背景变红问题(Image->ImageBuffer)
public
static
void
main(String[] args)
throws
IOException{
Image img = Toolkit.getDefaultToolkit().getImage(
"C:\\google.jpg"
);
BufferedImage bi_scale = toBufferedImage(img);
ImageIO.write(bi_scale,
"jpg"
,
new
File(
"C:\\2.jpg"
));
}
public
static
BufferedImage toBufferedImage(Image image) {
if
(image
instanceof
BufferedImage) {
return
(BufferedImage)image;
}
// This code ensures that all the pixels in the image are loaded
image =
new
ImageIcon(image).getImage();
// Determine if the image has transparent pixels; for this method‘s
// implementation, see e661 Determining If an Image Has Transparent Pixels
//boolean hasAlpha = hasAlpha(image);
// Create a buffered image with a format that‘s compatible with the screen
BufferedImage bimage =
null
;
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
try
{
// Determine the type of transparency of the new buffered image
int
transparency = Transparency.OPAQUE;
/* if (hasAlpha) {
transparency = Transparency.BITMASK;
}*/
// Create the buffered image
GraphicsDevice gs = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = gs.getDefaultConfiguration();
bimage = gc.createCompatibleImage(
image.getWidth(
null
), image.getHeight(
null
), transparency);
}
catch
(HeadlessException e) {
// The system does not have a screen
}
if
(bimage ==
null
) {
// Create a buffered image using the default color model
int
type = BufferedImage.TYPE_INT_RGB;
//int type = BufferedImage.TYPE_3BYTE_BGR;//by wang
/*if (hasAlpha) {
type = BufferedImage.TYPE_INT_ARGB;
}*/
bimage =
new
BufferedImage(image.getWidth(
null
), image.getHeight(
null
), type);
}
// Copy image to buffered image
Graphics g = bimage.createGraphics();
// Paint the image onto the buffered image
g.drawImage(image,
0
,
0
,
null
);
g.dispose();
return
bimage;
}
图片背景变红问题(Image->ImageBuffer)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。