*一:使用BufferedImage和Graphics2D
- 讀取原始圖片:使用ImageIO.read(File input)*讀取原始圖片文件。
- 創(chuàng)建新的BufferedImage:根據(jù)目標(biāo)尺寸創(chuàng)建一個(gè)新的BufferedImage對(duì)象。
- 繪制縮放后的圖片:使用Graphics2D對(duì)象在新BufferedImage上繪制縮放后的圖片??梢允褂胐rawImage(Image img, int dx, int dy, int dw, int dh, ImageObserver observer)*,其中dw和dh是目標(biāo)寬度和高度。
- 保存圖片:使用ImageIO.write(RenderedImage im, String formatName, File output)*保存處理后的圖片。
*二:使用 Thumbnailator
- 添加 Maven 依賴(如果尚未添加)
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>*版本</version> <!-- 請(qǐng)?zhí)鎿Q為實(shí)際可用的*版本 -->
</dependency>使用 Thumbnails 工具類:import net.coobird.thumbnailator.Thumbnails;
File originalFile = new File("original.jpg");
File outputFile = new File("resized.jpg");
Thumbnails.of(originalFile)
.size(目標(biāo)寬度, 目標(biāo)高度)
.toFile(outputFile);
添加水印*一:使用BufferedImage和Graphics2D
- 加載水印圖片:同樣使用ImageIO.read(File input)*加載水印圖片。
- 在目標(biāo)圖片上繪制水印:
- 使用Graphics2D的drawImage*將水印圖片繪制到目標(biāo)圖片的指定位置。
- 可以設(shè)置水印的透明度、位置等屬性。
- 保存圖片:同上,使用ImageIO.write*保存處理后的圖片。
示例代碼片段(添加文字水?。〨raphics2D graphics = resizedImage.createGraphics();
graphics.se*olor(Color.RED); // 設(shè)置水印顏色
graphics.setFont(new Font("Arial", Font.BOLD, 40)); // 設(shè)置水印字體
graphics.drawString("水印文本", 10, 50); // 在圖片上繪制水印文本
graphics.dispose();注意
- 在處理圖片時(shí),請(qǐng)確保目標(biāo)路徑是可寫的,并且文件沒(méi)有被其他程序鎖定。
- 調(diào)整圖片尺寸時(shí),可能需要考慮圖片的寬高比,以避免圖片變形。
- 添加水印時(shí),可以根據(jù)需要調(diào)整水印的透明度、位置、大小等屬性。