给图片加图片边框 图片边框要求为PNG格式
时间: 2018-11-07来源:OSCHINA
前景提要
「深度学习福利」大神带你进阶工程师,立即查看>>> package com.product.utils; import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.*; import java.net.URL; import java.net.URLConnection; /** * 图片边框类 * * @author 剑来V * */ public final class ImageBorderUtil { /** * * @param url * 需要加边框的图片URL地址 * @param pressImg * 边框图片的存放路径 * @param targetImg * 图片的路径 * @param handleImg * 新处理的图片路径 */ public static void pressImage(String url, String pressImg, String targetImg, String handleImg) { try { int maxLength = 0;// 求出绘制的正方形长度 int direction = 0;// 默认 0正方形 1横向长方形 2纵向长方形 // 目标文件 File _file = toFile(url, new File(targetImg)); Image src = ImageIO.read(_file); int width = src.getWidth(null); int height = src.getHeight(null); // 边框文件 File _filebiao = new File(pressImg); Image src_biao = ImageIO.read(_filebiao); if (width == height) { maxLength = width; } else if (width - height > 0) { maxLength = width; direction = 1; } else { maxLength = height; direction = 2; } // 调整坐标 int x = 0, y = 0; switch (direction) { case 1:// 横向长方形 y = (maxLength - height) / 2; break; case 2:// 纵向长方形 x = (maxLength - width) / 2; break; } BufferedImage image = new BufferedImage(maxLength, maxLength, BufferedImage.TYPE_INT_RGB); Graphics2D g = image.createGraphics(); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); g.setBackground(Color.WHITE);// 设置白色背景填充 g.clearRect(0, 0, maxLength, maxLength);// 重置画布进行填充 g.drawImage(src, 0 + x, 0 + y, width, height, null);// 底层画布 g.drawImage(src_biao, 0, 0, maxLength, maxLength, null);// 边框PNG图片覆盖 g.dispose(); // 直接修改源文件 // FileOutputStream out = new FileOutputStream(targetImg); // JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); // encoder.encode(image); // out.flush(); // out.close(); // 生成新的文件 File sf = new File(handleImg); ImageIO.write(image, "jpg", sf); // 保存图片 } catch (Exception e) { e.printStackTrace(); } } /** * 文件保存 * * @param link * 图片链接 * @param file * 存入的文件地址 * @return 下载的文件 */ public static File toFile(String link, File file) { try { URL url = new URL(link); URLConnection uri = url.openConnection(); // 获取数据流 InputStream ins = uri.getInputStream(); OutputStream os = new FileOutputStream(file); int bytesRead = 0; byte[] buffer = new byte[8192]; while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) { os.write(buffer, 0, bytesRead); } os.close(); ins.close(); return file; } catch (Exception e) { return null; } } public static void main(String[] args) { pressImage("http://imgsrc.baidu.com/imgad/pic/item/7af40ad162d9f2d3dd3f80d6a2ec8a136327ccd9.jpg", "D:\\imgin\\99-FS.png", "D:\\imgout\\test111111111.jpg", "D:/imgout/" + "test2018" + "." + "jpg"); System.out.println("结束"); } }

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行