zoukankan      html  css  js  c++  java
  • Java语言利用Google的Thumbnailator处理图片

    导读:在Java中制作高质量的缩略图可能是一项相当困难的任务,或者图片质量高页面加载慢等等原因使需要对图片进行处理,但是又不想写太多的代码太麻烦去处理图片,那么就可以使用Thumbnailator——Thumbnailator是一个单独的JAR文件,不依赖于外部库,使开发和部署变得简单和容易。

    1.Thumbnailator能提供那些功能

    1. 图片裁剪
    2. 修改像素
    3. 缩小/扩大
    4. 压缩质量
    5. 旋转
    6. 加水印
    7. 转化图片格式
    8. 其他……

    2.Thumbnailator怎么引入项目

      maven的pom.xml添加下面的dependency:

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

      也可以下载thumbnailator-0.4.8.jar包,导入工程lib下面;

    3.Thumbnailator怎么使用

    package com.tao.springboot;
    
    import net.coobird.thumbnailator.Thumbnails;
    import net.coobird.thumbnailator.geometry.Positions;
    
    import javax.imageio.ImageIO;
    import java.awt.*;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    
    public class Thumbnailator {
        public static void main(String[] args) throws IOException {
            // 需要压缩的图片
            File inFile = new File("C:/images/test.jpg");
            // 压缩完的存放地址
            String outFile = "C:/images/test.jpg";
            // 图片裁剪
            Thumbnails.of(inFile).sourceRegion(0,0,400,400).size(200,200).toFile(outFile);
            // 修改像素
            Thumbnails.of(inFile).size(200,200).toFile(outFile);
            // 缩小
            Thumbnails.of(inFile).scale(0.5f).toFile(outFile);
            // 扩大
            Thumbnails.of(inFile).scale(2f).toFile(outFile);
            // 压缩质量
            Thumbnails.of(inFile).outputQuality(0.5f).toFile(outFile);
            // 旋转
            Thumbnails.of(inFile).rotate(90).toFile(outFile);
            // 图片水印
            File waterFile = new File("C:/images/water.jpg");
            Thumbnails.of(inFile).watermark(Positions.BOTTOM_CENTER, ImageIO.read(waterFile),0.5f).toFile(outFile);
            // 文字水印
            BufferedImage bi = new BufferedImage(80,30,BufferedImage.TYPE_INT_BGR);
            Graphics2D g = bi.createGraphics();
            g.setColor(Color.lightGray);
            g.drawRect(0,0,50,10);
            g.drawString("文字水印", 20,20);
            Thumbnails.of(inFile).watermark(Positions.BOTTOM_LEFT, bi, 0.5f).toFile(outFile);
            // 转化图片格式
            Thumbnails.of(inFile).outputFormatType("png").toFile(outFile);
        }
    
    }

    4.参考资料

    github地址:https://github.com/coobird/thumbnailator

    maven地址:https://mvnrepository.com/artifact/net.coobird/thumbnailator

  • 相关阅读:
    Nokia Lumia 800销售反馈 苹果iPhone、三星Galaxy不敌800设计
    各大网站用户数据库被爆,遭大量网友下载
    最美发明家:GPS、手机通讯网都源自她的发明
    iPhone5或明年下半年发布 配备iOS6和A6芯片
    保存文件到手机内存
    2012年十大科技趋势:NFC、语音控制与弯曲屏
    电脑报独家报道:宽带升级全国真相调查
    Android的电话拨号器
    Java程序员成长之路(接口与抽象类究竟有什么区别)
    联系人相关
  • 原文地址:https://www.cnblogs.com/i-tao/p/10963014.html
Copyright © 2011-2022 走看看