java要實(shí)現(xiàn)把一個(gè)大圖片壓縮到指定大小的圖片且長(zhǎng)寬比不變可以嘗試以下操作:
連山網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司公司2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
建立一個(gè)AffineTransform
AffineTransform(double m00, double m10, double m01, double m11, double m02, double m12)
轉(zhuǎn)換矩陣,縮放比較簡(jiǎn)單(矩陣可以干很多事情,想做圖像處理軟件可以研究下)
[ x'] [ m00 m01 m02 ] [ x ] [ m00x + m01y + m02 ]
[ y'] = [ m10 m11 m12 ] [ y ] = [ m10x + m11y + m12 ]
[ 1 ] [ 0 0 1 ] [ 1 ] [ 1 ]
10倍比較難算(根號(hào)10啊,當(dāng)然你想算也行),9倍好點(diǎn)(9的開方是3),m00為1/3,m01為0,m02為0,m10為0,m11為1/3,m12為0。
再建一個(gè)AffineTransformOp,把上面的轉(zhuǎn)換傳進(jìn)去
AffineTransformOp(AffineTransform xform, int interpolationType)
最后調(diào)用AffineTransformOp的BufferedImage filter(BufferedImage src, BufferedImage dst) ,src傳原圖片,返回值就是想要的Image,注意是返回值,不是dst,不明白可以看下Java API
java中g(shù)ui界面設(shè)置背景圖片文件格式轉(zhuǎn)換框架完讓圖片壓縮。一種是用Graphics+文件格式轉(zhuǎn)換框架完成,這種麻煩,代碼量多一些壓縮出的圖片質(zhì)量會(huì)更好,另一種是用Google的一個(gè)開源框架thumbna。
java壓縮圖片,按照比例進(jìn)行壓縮
public static void main(String[] args) {
try {
//圖片所在路徑
BufferedImage templateImage = ImageIO.read(new File("C:\\Users\\晏丁丁\\Pictures\\圖片1.png"));
//原始圖片的長(zhǎng)度和寬度
int height = templateImage.getHeight();
int width = templateImage.getWidth();
//通過比例壓縮
float scale = 0.5f;
//通過固定長(zhǎng)度壓縮
/*int doWithHeight = 100;
int dowithWidth = 300;*/
//壓縮之后的長(zhǎng)度和寬度
int doWithHeight = (int) (scale * height);
int dowithWidth = (int) (scale * width);
BufferedImage finalImage = new BufferedImage(dowithWidth, doWithHeight, BufferedImage.TYPE_INT_RGB);
finalImage.getGraphics().drawImage(templateImage.getScaledInstance(dowithWidth, doWithHeight, java.awt.Image.SCALE_SMOOTH), 0, 0, null);
//圖片輸出路徑,以及圖片名
FileOutputStream fileOutputStream = new FileOutputStream("D:/image/tupian.jpg");
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fileOutputStream);
encoder.encode(finalImage);
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
文章知
縮小即可。javathumbnails壓縮圖片占用內(nèi)存過大的解決辦法:
1、打開壓縮圖網(wǎng)站,點(diǎn)擊選擇圖片壓縮按鈕。
2、圖片上傳前網(wǎng)站默認(rèn)的壓縮等級(jí)是70,圖片上傳后會(huì)自動(dòng)按照當(dāng)前設(shè)置的壓縮等級(jí)進(jìn)行壓縮,如果壓縮后的大小不合要求,可再次設(shè)置圖片的寬高尺寸、壓縮等級(jí)等參數(shù),寬高留空時(shí)默認(rèn)按照原圖尺寸進(jìn)行壓縮,壓縮等級(jí)越小則壓縮后的圖片體積越小,最后點(diǎn)擊開始?jí)嚎s按鈕重新壓縮。
3、圖片壓縮后,我們就能明顯的看到圖片壓縮后的體積縮小了很多,點(diǎn)擊“保存圖片”即可。
網(wǎng)頁(yè)名稱:java代碼壓縮圖片 如何將java代碼壓縮
網(wǎng)頁(yè)URL:http://vcdvsql.cn/article20/doicgjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、虛擬主機(jī)、網(wǎng)站設(shè)計(jì)公司、移動(dòng)網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)