java实现圣诞帽子头像功能
来源:互联网 发布:淘宝浏览需要登录 编辑:程序博客网 时间:2024/04/29 21:29
来个应景的,今天就是挨炮,不是,apple之夜了,大家的头像也开始应景了。
觉得带个小帽子挺萌的,想了想,那就自己动手写一个吧
首先准备两张图片,一张头像的,比如这张
然后准备一张圣诞帽的png图片,比如这张
因为ps实在苦手,就在网上找了素材,然后自己截取了一部分
下面是代码了,主要的思路
1. 读取原始图片input.jpg
2. 通过Graphics绘制到BufferedImage
3. 读取cover的图片cover.png
4. 通过Graphics再次绘制到BufferedImage
5. 输出到文件output.jpg
具体实现如下
// 获取原始图片File img = new File("input.jpg");Image originImg = ImageIO.read(img);// 获取原始图片的宽和高int width = originImg.getWidth(null);int height = originImg.getHeight(null);System.out.println("原始图片的宽为:" + width + "\n原始图片的高为:" + height);if (width != height) {width = width > height ? height : width;height = width > height ? height : width;}System.out.println("输出图片的宽为:" + width + "\n输出图片的高为:" + height);// bufferimage 缓存图片,用于绘制输出的图片,输出大小与原始图片一致BufferedImage image = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);Graphics g = image.createGraphics();// 绘制原始图片g.drawImage(originImg, 0, 0, width, height, null);/** * cover.png 作为水印图片,覆盖在原始图片之上 */// 获取cover图片File cover = new File("cover.png");Image coverImg = ImageIO.read(cover);// 获取cover图片大小int widthCover = coverImg.getWidth(null);int heightCover = coverImg.getHeight(null);// 绘制水印图片,图片位置为左上角,大小与cover图片相同g.drawImage(coverImg, 0, 0, widthCover, heightCover, null);g.dispose();// 输出流和输出文件FileOutputStream out = new FileOutputStream("output.jpg");// 下面代码将输出图片转换为JPEG、JPG文件JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);encoder.encode(image);out.close();System.out.println("输出文件output.jpg");
最终效果如下
原谅我不会psQAQ,简单的来说就是叠加两张图片在输出就好了,没做太多的细节处理,图片不是正方形的会直接压成正方形,但是!谁没事拿个长方形做头像啊!!!
代码有可能会出现错误,因为 JPEGCodec 和 JPEGImageEncoder 是受限访问的,需要自己手动修改
修改方式:
1. 右键项目propertites
2. Java Complier
3. Errors/Warning
4. Enable project specified settings
5. 修改depracated and restricked API
6. 修改Forbidden reference warnning
7. 代码里添加 @SuppressWarnings("restriction") 元注释去除警告
0 0
- java实现圣诞帽子头像功能
- 实现更换头像功能
- JAVA + js 实现 头像上传及裁剪功能
- Android更换头像功能实现
- CSS3实现头像旋转功能
- 换头像的功能实现
- Android更换头像功能实现
- Android 实现头像上传功能
- apicloud实现修改头像功能
- android实现换头像功能
- 如何从技术上实现「朋友圈@微信官方头像添加圣诞帽」?
- 如何从技术上实现「朋友圈@微信官方头像添加圣诞帽」?
- 完美实现类似QQ的自拍头像、上传头像功能!
- php实现手机拍照上传头像功能
- php实现手机拍照上传头像功能
- Android设置头像上传功能实现
- uploadify+jcrop实现头像上传裁剪功能
- extjs的头像截图功能的实现
- GDAL官网 OGR API Tutorial学习笔记三:Writting To OGR(2)
- js中的delete机制1
- 开篇,写点什么
- 设计模式之单例模式
- c/c++ string 函数
- java实现圣诞帽子头像功能
- XMPPFramework 简介
- libdecodeqr-0.9.3在ubuntu上移植记录
- Linux用户(user)和用户组(group)的日常管理与操作
- Build Your Own Grow Light Housing
- WireShark 过滤语法
- Java IO
- Fatal Error[e72]: Segment ZIGNV_ADDRESS_SPACE must be defined in a segment definition option (-Z, -b
- Block OC的特有数据类型