java图片处理方法
程序员文章站
2022-03-27 20:22:04
...
地址:https://code.google.com/p/thumbnailator/
方法使用参考:http://www.cnblogs.com/atyou/p/3236068.html
/** * 指定大小进行缩放 * @param src 原始图片 * @param dst 图片输出位置 */ public static void scaleImage(File src, File dst) { try { Thumbnails.of(src) .size(DEFAULT_WIDTH, DEFAULT_HEIGHT) .toFile(dst); } catch (IOException e) { e.printStackTrace(); } } /** * 按照比例进行缩放 * @param src原始图片 * @param dst图片输出位置 * @param num图片缩放比例 */ public static void scaleImage(File src, File dst, float num) { try { Thumbnails.of(src) .scale(num)//scale(比例) .toFile(dst); } catch (IOException e) { e.printStackTrace(); } } /** * 不按照比例,指定大小进行缩放 * @param src原始图片 * @param dst图片输出位置 */ public static void keepAspectRatioImage(File src, File dst) { try { Thumbnails.of(src) .size(DEFAULT_WIDTH, DEFAULT_HEIGHT) .keepAspectRatio(false)//不等比缩放,强制转化成指定大小 .toFile(dst); } catch (IOException e) { e.printStackTrace(); } } /** * 旋转 * @param src原始图片 * @param dst图片输出位置 * @param num旋转的度数:90°,180°, -90°,-180°等 */ public static void rotateImage(File src, File dst, int num) { try { Thumbnails.of(src) .size(DEFAULT_WIDTH, DEFAULT_HEIGHT) .rotate(num)//rotate(角度),正数:顺时针 负数:逆时针 .toFile(dst); } catch (IOException e) { e.printStackTrace(); } } /** * 水印 * @param src原始图片 * @param dst图片输出位置 * @param watermark水印图片 */ public static void watermarkImage(File src, File dst, File watermark) { try { Thumbnails.of(src) .size(DEFAULT_WIDTH, DEFAULT_HEIGHT) //.size(1280, 1024) .watermark(Positions.BOTTOM_RIGHT, ImageIO.read(watermark), 0.5f)//watermark(位置,水印图,透明度) .outputQuality(0.8f) .toFile(dst); } catch (IOException e) { e.printStackTrace(); } } /** * 转化图片格式 * @param src原始图片 * @param dst图片输出位置 * @param format图片格式:png,jpg,gif... */ public static void formatImage(File src, File dst, String format) { try { Thumbnails.of(src) .size(DEFAULT_WIDTH, DEFAULT_HEIGHT) .outputFormat(format) .toFile(dst); } catch (IOException e) { e.printStackTrace(); } } /** * 裁剪 * @param src原始图片 * @param dst图片输出位置 */ public static void sourceRegion(File src, File dst) { try { Thumbnails.of(src) .sourceRegion(Positions.CENTER, 400,400)//图片中心400*400的区域 //.sourceRegion(Positions.BOTTOM_RIGHT, 400,400)//图片右下400*400的区域 //.sourceRegion(600, 500, 400, 400)//随意指定坐标下400*400的区域 .keepAspectRatio(false) .size(200, 200)//裁剪图片的大小 .toFile(dst); } catch (IOException e) { e.printStackTrace(); } }