必威体育Betway必威体育官网
当前位置:首页 > IT技术

Thumbnails 框架使用,图片常用操作

时间:2019-08-16 14:40:00来源:IT技术作者:seo实验室小编阅读:89次「手机版」
 

.thumbnails

package zk.test;

import java.awt.p_w_picpath.BufferedImage;

import java.io.File;

import java.io.Fileoutputstream;

import java.io.IOException;

import java.io.OutputStream;

import javax.p_w_picpathio.ImageIO;

import net.coobird.thumbnailator.Thumbnails;

import net.coobird.thumbnailator.geometry.Positions;

public class ThumbnailatorTest {

   private static String  str = "D:/zimg/a.png";

   private static String  despath = "D:/zimg/desImg";

   private static File file = null;

   static{

       file = new File(despath);

       if(!file.exists()){

           file.mkdirs();

       }

   }

   /**

    * 

    * @param args

    * @throws IOException

    */

   public static void main(String[] args) throws IOException {

       ThumbnailatorTest thumbnailatorTest = new ThumbnailatorTest();

       thumbnailatorTest.test1();

       thumbnailatorTest.test2();

       thumbnailatorTest.test3();

       thumbnailatorTest.test4();

       thumbnailatorTest.test5();

       thumbnailatorTest.test6();

       thumbnailatorTest.test7();

       thumbnailatorTest.test8();

       thumbnailatorTest.test9();

   }

   /**

    * 指定大小进行缩放

    * 

    * @throws IOException

    */

   private void test1() throws IOException {

       /*

        * size(width,height) 若图片横比200小,高比300小,不变

        * 若图片横比200小,高比300大,高缩小到300,图片比例不变 若图片横比200大,高比300小,横缩小到200,图片比例不变

        * 若图片横比200大,高比300大,图片按比例缩小,横为200或高为300

        */

       Thumbnails.of(str).size(200, 300).toFile(

               despath+"/a.png");

       Thumbnails.of(str).size(2560, 2048).toFile(

               despath+"/a1.png");

   }

   /**

    * 按照比例进行缩放

    * 

    * @throws IOException

    */

   private void test2() throws IOException {

       /**

        * scale(比例)

        */

       Thumbnails.of(str).scale(0.25f)

               .toFile(despath+"/b.png");

       Thumbnails.of(str).scale(1.10f).toFile(

               despath+"/b1.png");

   }

   /**

    * 不按照比例,指定大小进行缩放

    * 

    * @throws IOException

    */

   private void test3() throws IOException {

       /**

        * keepAspectRatio(false) 默认是按照比例缩放的

        */

       Thumbnails.of(str).size(120, 120).keepAspectRatio(false)

               .toFile(despath+"/c.png");

   }

   /**

    * 旋转

    * 

    * @throws IOException

    */

   private void test4() throws IOException {

       /**

        * rotate(角度),正数:顺时针 负数:逆时针

        */

       Thumbnails.of(str).size(1280, 1024).rotate(90).toFile(

               despath+"/d.png");

       Thumbnails.of(str).size(1280, 1024).rotate(-90).toFile(

               despath+"/d1.png");

   }

   /**

    * 水印

    * 

    * @throws IOException

    */

   private void test5() throws IOException {

       /**

        * watermark(位置,水印图,透明度)

        */

       Thumbnails.of(str).size(1280, 1024).watermark(

               Positions.BOTTOM_RIGHT,

               ImageIO.read(new File("D:/zimg/c.png")), 0.5f)

               .outputQuality(0.8f).toFile(

                       despath+"/e.png");

       Thumbnails.of(str).size(1280, 1024).watermark(

               Positions.CENTER,

               ImageIO.read(new File("D:/zimg/c.png")), 0.5f)

               .outputQuality(0.8f).toFile(despath+"/e1.png");

   }

   /**

    * 裁剪

    * 

    * @throws IOException

    */

   private void test6() throws IOException {

       /**

        * 图片中心400*400的区域

        */

       Thumbnails.of(str).sourceRegion(Positions.CENTER, 400,

               400).size(200, 200).keepAspectRatio(false).toFile(

                       despath+"/f.png");

       /**

        * 图片右下400*400的区域

        */

       Thumbnails.of(str).sourceRegion(Positions.BOTTOM_RIGHT,

               400, 400).size(200, 200).keepAspectRatio(false).toFile(

                       despath+"/f1.png");

       /**

        * 指定坐标

        */

       Thumbnails.of(str).sourceRegion(600, 500, 400, 400).size(

               200, 200).keepAspectRatio(false).toFile(

                       despath+"/f2.png");

   }

   /**

    * 转化图像格式

    * 

    * @throws IOException

    */

   private void test7() throws IOException {

       /**

        * outputFormat(图像格式)

        */

       Thumbnails.of(str).size(1280, 1024).outputFormat("jpeg")

               .toFile(despath+"/g.jpeg");

       Thumbnails.of(str).size(1280, 1024).outputFormat("gif")

               .toFile(despath+"/g1.gif");

       

       Thumbnails.of(str).size(1280, 1024).outputFormat("jpg")

               .toFile(despath+"/g2.jpg");

       Thumbnails.of(str).size(1280, 1024).outputFormat("bmp")

               .toFile(despath+"/g3.bmp");

   }

   /**

    * 输出到OutputStream

    * 

    * @throws IOException

    */

   private void test8() throws IOException {

       /**

        * toOutputStream(流对象)

        */

       OutputStream os = new FileOutputStream(

               despath+"/h.gif");

       Thumbnails.of(str).size(1280, 1024).toOutputStream(os);

   }

   /**

    * 输出到BufferedImage

    * 

    * @throws IOException

    */

   private void test9() throws IOException {

       /**

        * asBufferedImage() 返回BufferedImage

        */

       BufferedImage thumbnail = Thumbnails.of(str).size(1280,

               1024).asBufferedImage();

       

       ImageIO.write(thumbnail, "jpg", new File(

               despath+"/i.gif"));

   }

}

相关阅读

用户上传图片后实现图片预览效果(解决fakepath路径问题

注意:实现这个效果最重要的就是获取到用户上传到网页上的真实路径。关键代码:<%@ page language="java" contentType="text/html; c

ViewFlipper实现图片轮播

什么是ViewFlipperViewFlipper,它是Android自带的一个多页面管理控件,可以实现引导页图片切换以及广告轮播的效果。其实ViewPager也

找到驱动精灵屏幕保护图片

1 图片的位置 C:\Users\boluo1125\AppData\Roaming\khealtheye\wallpaper 2 当图片有文字时点击右上角的设为壁纸时保持的

BMP图片分析

文件格式 格式组成 典型的BMP图像文件由四部分组成: 位图头文件数据结构,它包含BMP图像文件的类型、显示内容等信息; 位图信息数据结

hello kitty淘宝店铺收藏图片

今天装修宅小编为大家推荐一张动态hello kitty淘宝店铺收藏图片,大家喜欢的话可以在淘宝店铺装修中使用,用于引导买家收藏自己的淘

分享到:

栏目导航

推荐阅读

热门阅读