java web 打水印
/*** 把图片印刷到图片上** @param pressImg --* 水印文件* @param targetinp --* 目标文件* @param x* --x坐标* @param y* --y坐标*/public static File pressImage(File pressImg, InputStream targetinp,String format,int x, int y) {File file = null;try {//目标文件Image src = ImageIO.read(targetinp);int wideth = src.getWidth(null);int height = src.getHeight(null);BufferedImage image = new BufferedImage(wideth, height,BufferedImage.TYPE_INT_RGB);Graphics g = image.createGraphics();g.drawImage(src, 0, 0, wideth, height, null);//水印文件Image src_biao = ImageIO.read(pressImg);int wideth_biao = src_biao.getWidth(null);int height_biao = src_biao.getHeight(null);g.drawImage(src_biao, (wideth - wideth_biao),(height - height_biao)-40 , wideth_biao, height_biao, null);//水印文件结束g.dispose();ByteArrayOutputStream os = new ByteArrayOutputStream();ImageIO.write(image,format,os);byte [] bytes = os.toByteArray();BufferedOutputStream bos = null;FileOutputStream fos = null;file = new File("temp");fos = new FileOutputStream(file);bos = new BufferedOutputStream(fos);bos.write(bytes);bos.close();fos.close();os.close();} catch (Exception e) {e.printStackTrace();}return file;}
以上工具代码
无论压缩 水印 都是差不多用Image.read
在spring muitpartfile 读取传入的file ,出现 can't read input file , 由于传入file 引起的问题
改为 inputstream即可
不过最好使用InputStream读
ps :
ImageIO.read(targetinp);
ImageIO的read 静态方法 可以传入 url , inputstream , file 多个重载方法
浙公网安备 33010602011771号