*一:使用 BufferedImage 和 Graphics2D
- 讀取原始圖片:使用 ImageIO.read(File input) *讀取原始圖片文件。
- 創(chuàng)建新的 BufferedImage:根據(jù)目標尺寸創(chuàng)建一個新的 BufferedImage 對象。
- 繪制縮放后的圖片:使用 Graphics2D 對象在新 BufferedImage 上繪制縮放后的圖片。可以使用 drawImage(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) *加載水印圖片。
- 在目標圖片上繪制水印:
- 使用 Graphics2D 的 drawImage *將水印圖片繪制到目標圖片的指定位置。
- 可以設置水印的透明度、位置等屬性。
- 保存圖片:同上,使用 ImageIO.write *保存處理后的圖片。
示例代碼片段(添加文字水?。?/h4>
Graphics2D graphics = resizedImage.createGraphics(); graphics.se*olor(Color.RED); // 設置水印顏色 graphics.setFont(new Font("Arial", Font.BOLD, 40)); // 設置水印字體 graphics.drawString("水印文本", 10, 50); // 在圖片上繪制水印文本 graphics.dispose();
注意
- 在處理圖片時,請確保目標路徑是可寫的,并且文件沒有被其他程序鎖定。
- 調整圖片尺寸時,可能需要考慮圖片的寬高比,以避免圖片變形。
- 添加水印時,可以根據(jù)需要調整水印的透明度、位置、大小等屬性。