Thumbnailator生成缩略图

来源:互联网 发布:大唐软件官网 编辑:程序博客网 时间:2024/06/01 10:04

.Thumbnailator对图片的处理 

1.Thumbnailator对图片进行指定尺寸的压缩。

1 String result = "src/main/resources/images/";2Thumbnails.of(result + "sijili.jpg").size(200, 300).toFile(result + "image_200x300.jpg");

 2.Thumbnailator对图片进行指定比例的压缩。

String result = "src/main/resources/images/";

Thumbnails.of(result + "sijili.jpg").scale(0.5f).toFile(result + "image_0.5f.jpg");

3.Thumbnailator对图片进行旋转。

String result = "src/main/resources/images/";

Thumbnails.of(result + "sijili.jpg").scale(1.0f).rotate(180).toFile(result + "image_r180.jpg");

      4.Thumbnailator对图片进行格式转换。

String result = "src/main/resources/images/";

Thumbnails.of(result + "sijili.jpg").scale(1.0f).outputFormat("png").toFile(result + "image_sijiali.png");

      5.Thumbnailator对图片进行剪裁。

String result = "src/main/resources/images/";

Thumbnails.of(result + "sijili.jpg").scale(1.0f).sourceRegion(Positions.CENTER, 400, 400).toFile(result + "image_center.png");

Thumbnails.of(result + "sijili.jpg").sourceRegion(100, 100, 100, 100).scale(1.0f).toFile(result + "image_100_4.jpg");

     6.Thumbnailator对图片进行加水印操作。

String result = "src/main/resources/images/";

 // watermark参数 1.位置2.水印图片3.透明度

Thumbnails.of(result + "sijili.jpg").scale(1.0f).watermark(Positions.CENTER, ImageIO.read(new File(result + "warter.jpg")), 0.25f).toFile(result + "image_warter.jpg");

7.Thumbnailator对图片进行加文字水印操作。

String result = "src/main/resources/images/";

BufferedImage bi = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);

Graphics2D g = bi.createGraphics();

g.setColor(Color.LIGHT_GRAY);

g.drawRect(0, 0, 10, 10);char[] data = "liudTest".toCharArray();

g.drawChars(data, 0, data.length, 5, 32);

// watermark 参数 1.位置2.水印3.透明度

Thumbnails.of(result + "sijili.jpg").scale(1.0f).watermark(Positions.CENTER, bi, 1.0f).toFile(result + "image_warter_liud.jpg");

 

      Thumbnailator对图片进行加文字水印的方式,并不推荐,可以先对文字处理成图片之后在加水印,看上面代码的冗长也不符合Thumbnailator的风格不是。

 . Java原生对图片的处理

String result = "src/main/resources/images/";

OutputStream os = new FileOutputStream(result + "sijili_out.jpg");

 

Image image = ImageIO.read(new File(result + "sijili.jpg"));

 

BufferedImage bufferedImage = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);

        bufferedImage.getGraphics().drawImage(image.getScaledInstance(100, 100, image.SCALE_SMOOTH), 0, 0,null);

 

ImageIO.write(bufferedImage, "jpg",os);

os.close();

原创粉丝点击