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