日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java按比例之原图生成缩略图

發(fā)布時(shí)間:2025/3/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java按比例之原图生成缩略图 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

package com.wxp.test;

import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;

import javax.imageio.ImageIO;

import sun.awt.image.PNGImageDecoder;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.sun.imageio.plugins.png.PNGImageWriter;

public class CreateShortImage {

?? ?public final static ?String DDIST="D:\\WXPworkspace\\shortImage\\";
?? ?public final static ?String DSRC="D:\\WXPworkspace\\";
?? ?
?? ?/**
?? ? * 創(chuàng)建圖片縮略圖(等比縮放)
?? ? * @param src
?? ? * @param dist
?? ? * @param width
?? ? * @param height
?? ? */
?? ?public static void createThumbnail(String src,String dist,float width,float height){
?? ??? ?try {
?? ??? ??? ?File srcFile = new File(src);
?? ??? ??? ?if(!srcFile.exists()){
?? ??? ??? ??? ?System.out.println("文件不存在");
?? ??? ??? ??? ?return;
?? ??? ??? ?}
?? ??? ??? ?BufferedImage image = ImageIO.read(srcFile);
?? ??? ??? ?//獲得縮放比例
?? ??? ??? ?double ratio = 1.0;
?? ??? ??? ?//判斷如果高、寬都不大于設(shè)定值,則不處理
?? ??? ??? ?if(image.getHeight() > height || image.getWidth() > width){
?? ??? ??? ??? ?if( image.getHeight() > image.getWidth()){
?? ??? ??? ??? ??? ?ratio = height / image.getHeight();
?? ??? ??? ??? ?}else{
?? ??? ??? ??? ??? ?ratio = width / image.getWidth();
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?//計(jì)算新的圖面寬度和高度
?? ??? ??? ?int newWidth = (int)(image.getWidth() * ratio);
?? ??? ??? ?int newHeight = (int)(image.getHeight() * ratio);
?? ??? ??? ?BufferedImage bfiImage = new BufferedImage(newWidth, newHeight,BufferedImage.TYPE_INT_BGR);
?? ??? ??? ?bfiImage.getGraphics().drawImage(
?? ??? ??? ??? ??? ?image.getScaledInstance(newWidth, newHeight,Image.SCALE_SMOOTH),0,0,null);
?? ??? ??? ?FileOutputStream os = new FileOutputStream(dist);
?? ??? ??? ?JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os);
?? ??? ??? ?encoder.encode(bfiImage);
?? ??? ??? ?os.close();
?? ??? ??? ?System.out.println("創(chuàng)建縮略圖成功");
?? ??? ?} catch (Exception e) {
?? ??? ??? ?// TODO: handle exception
?? ??? ??? ?System.out.println("創(chuàng)建縮略圖發(fā)生異常"+e.getMessage());
?? ??? ?}
?? ?}
?? ?/**
?? ? * @param argsshortImage
?? ? */
?? ?public static void main(String[] args) {
?? ??? ?// TODO Auto-generated method stub
?? ??? ? ?createThumbnail(DSRC+"1.png", DDIST+"a.png", 100, 100);
?? ? ? ? ?createThumbnail(DSRC+"2.png", DDIST+"b.png", 100, 100);
?? ? ? ? ?createThumbnail(DSRC+"3.jpg", DDIST+"c.jpg", 100, 100);
?? ?}

}
?

轉(zhuǎn)載于:https://my.oschina.net/u/3378039/blog/1860208

總結(jié)

以上是生活随笔為你收集整理的java按比例之原图生成缩略图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。