Java 向图片内嵌入图片程序

        写一个向图片内嵌入另一张图片程序,新的需要嵌入的图片需要旋转,并放在该放的位置上。

 

        步骤:

准备工作:将旧的图片,需要嵌入图片的地方,透明化处理,建议使用png(gif有锯齿)。

        1.加载俩张图片。

        2.创建一个新的画布(即图片)与原来的图片一边大。

        3.将需要嵌入的图片,旋转,并写入到画布应该放的位置上。

        4.将旧图片需要盖在新的图片上,只露出透明的部分,这样做的好处两张图片可以很好的贴合。

        5.调整图片位置。

 

代码:
public class Test2 {
public static void main(String[] args) {
// 加载原图
BufferedImage back_img = null;
File fpic = new File("/home/xxx/Desktop/yin.png");
try {
back_img = (BufferedImage) ImageIO.read(fpic);
} catch (IOException e) {
e.printStackTrace();
}
int width = back_img.getWidth();
int height = back_img.getHeight();
Graphics2D backg2d = (Graphics2D) back_img.getGraphics();

// 加载新图
BufferedImage old_img = null;
File fpic2 = new File("/home/xxx/Desktop/zeng.jpg");
try {
old_img = (BufferedImage) ImageIO.read(fpic2);
} catch (IOException e) {
e.printStackTrace();
}

// 背景透明
BufferedImage new_img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D g2d2 = new_img.createGraphics();
new_img = g2d2.getDeviceConfiguration().createCompatibleImage(height, width, Transparency.TRANSLUCENT);
g2d2.dispose();
g2d2 = new_img.createGraphics();

// // 确定旋转圆心
AffineTransform origXform = g2d2.getTransform();
AffineTransform newXform = (AffineTransform) (origXform.clone());
newXform.rotate(Math.toRadians(8.0), width, height);
g2d2.setTransform(newXform);
g2d2.drawImage(old_img, 70, 65, 130, 100, null);

g2d2.setTransform(origXform);
g2d2.drawImage(back_img, 0, 0, null);

g2d2.dispose();

try {
ImageIO.write(new_img, "png", new File("/home/xxx/Desktop/test2.png"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值