关于ImageIO.read()方法读取图片后重写,图片蒙上一层红色的解决办法

2022-04-17 14:27
225
0

关于ImageIO.read()方法读取图片后重写,图片蒙上一层红色的解决办法

1, 引用一下依赖Jar 包

<!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator -->
<dependency>
    <groupId>net.coobird</groupId>
    <artifactId>thumbnailator</artifactId>
    <version>0.4.17</version>
</dependency>

 

操作如下:

File srcPic = new File("D:\\test\\31.jpg");//目标图片位置-图片源

File desPic = new File("D:\\test\\32.jpg"); //生成文件位置

//按指定大小把图片进行缩和放(会遵循原图高宽比例) //此处把图片压成400×500的缩略图

Thumbnails.of(srcPic).size(400,500).toFile(desPic);

//按照比例进行缩小和放大

Thumbnails.of(srcPic ).scale(0.2f).toFile(desPic );//按比例缩小

Thumbnails.of(srcPic ).scale(2f).toFile(desPic );//按比例放大

 

// 按指定的大小进行缩放(不遵循原图比例)//不按比例,就按指定的大小进行缩放

Thumbnails.of(fromPic).size(100, 100).keepAspectRatio(false).toFile(toPic); //或者

Thumbnails.of(fromPic).forceSize(100,100).toFile(toPic);// 图片尺寸不变,压缩图片文件大小 //图片尺寸不变,压缩图片文件大小outputQuality实现,参数1为最高质量 Thumbnails.of(fromPic).scale(1f).outputQuality(0.25f).toFile(toPic); 

//给图片加水印,watermark(位置,水印图,透明度)Positions.CENTER表示加在中间

Thumbnails.of(fromPic).size(400,400) .watermark(Positions.CENTER,ImageIO.read(waterPic),0.5f) .outputQuality(0.8f).toFile(toPic); 转换图片格式

//用outputFormat(图像格式)转换图片格式,保持原尺寸不变

Thumbnails.of(fromPic).scale(1f).outputFormat("png") .toFile("picture/png格式的图片.png");  

//输出成文件流

OutputStream OutputStream os=new FileOutputStream(toPic);

Thumbnails.of(fromPic).size(120,120).toOutputStream(os);

//指定原图的长宽进行切图或缩放

Thumbnails.Builder bu= Thumbnails.of(input).sourceRegion(Positions.CENTER, width,hight).size(width,hight);//再根据大小转换

bu.outputQuality(1).toFile(out);

全部评论