中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

java怎么壓縮圖片大小不改變圖片分辨率

小億
460
2023-09-14 10:06:44
欄目: 編程語言

在Java中可以使用javax.imageio包中的類來壓縮圖片大小而不改變圖片分辨率。下面是一個壓縮圖片大小的示例代碼:

import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ImageCompressor {
public static void main(String[] args) {
String inputImagePath = "input.jpg";
String outputImagePath = "output.jpg";
int newWidth = 800; // 壓縮后的圖片寬度
int newHeight = 600; // 壓縮后的圖片高度
try {
// 讀取原始圖片
BufferedImage originalImage = ImageIO.read(new File(inputImagePath));
int originalWidth = originalImage.getWidth();
int originalHeight = originalImage.getHeight();
// 創建一個新的圖像對象,并指定壓縮后的寬高
BufferedImage resizedImage = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_RGB);
Graphics2D g = resizedImage.createGraphics();
// 使用抗鋸齒渲染
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
// 繪制壓縮后的圖像
g.drawImage(originalImage, 0, 0, newWidth, newHeight, 0, 0, originalWidth, originalHeight, null);
g.dispose();
// 將壓縮后的圖像保存到指定路徑
ImageIO.write(resizedImage, "jpg", new File(outputImagePath));
System.out.println("圖片壓縮成功!");
} catch (IOException ex) {
System.out.println("圖片壓縮失敗:" + ex.getMessage());
}
}
}

在這個示例代碼中,我們首先指定了原始圖片路徑(inputImagePath)和壓縮后圖片的路徑(outputImagePath),以及壓縮后的寬度(newWidth)和高度(newHeight)。

然后,我們使用ImageIO類的read方法讀取原始圖片,并獲取原始圖片的寬度和高度。

接下來,我們創建一個新的BufferedImage對象,并指定寬度和高度為壓縮后的尺寸。

然后,我們使用Graphics2D對象的drawImage方法將原始圖片繪制到新的BufferedImage對象上,指定繪制的區域為壓縮后的尺寸。

最后,我們使用ImageIO類的write方法將壓縮后的圖像保存到指定路徑。

注意,在這個示例代碼中,我們使用了抗鋸齒渲染(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR),以保持壓縮后的圖像質量。你也可以根據需要選擇其他的渲染方式。

此外,你還可以根據實際情況對壓縮后的圖像進行其他處理,比如調整亮度、對比度等。

0
桂东县| 临沧市| 徐州市| 海门市| 游戏| 沭阳县| 紫阳县| 吴堡县| 忻城县| 彰化市| 若尔盖县| 铜梁县| 那坡县| 石林| 万山特区| 荥经县| 兴安县| 鄂托克前旗| 自贡市| 玉树县| 和林格尔县| 宁乡县| 固始县| 湖南省| 响水县| 潍坊市| 嘉定区| 承德县| 建水县| 新郑市| 阿巴嘎旗| 阜康市| 营山县| 白城市| 赣榆县| 措美县| 神池县| 罗城| 郧西县| 克什克腾旗| 运城市|