想快速將資料夾內的大量照片轉成網頁相簿?這個 Java 工具類 Zoom 示範如何批次讀取 JPG/JPEG 影像、依比例產生縮圖、並自動輸出包含超連結的 HTML 相簿頁面。程式碼簡潔無依賴,僅使用 JDK 內建 com.sun.image.codec.jpeg 編解碼器,適合快速整合至專案或作為學習影像處理範例。
.jpg/.jpeg 檔案(getFiles())。zoom 子目錄存放縮圖(mkdirs())。BufferedImage,並編碼輸出為 zooms_原檔名.jpg(zoom())。<tr>),產生縮圖連結指向原圖,滑鼠點擊可在新分頁開啟大圖。index.html,完成相簿發布(outputHtmlFile())。float zoom = 0.12F;
int w = (int) (imageFile.getWidth() * zoom);
int h = (int) (imageFile.getHeight() * zoom);
BufferedImage bufImage = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics g = bufImage.getGraphics();
g.drawImage(imageFile, 0, 0, w, h, new ImageObserver() {
public boolean imageUpdate(Image img, int infoflags, int x, int y, int width, int height) {
return true;
}
});
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(bufImage);
使用 ImageObserver 匿名類別確保圖片繪製完成再編碼,避免縮圖不全。
int row = count % 3;
if (row == 0) html.append("\n\t");
html.append("\n\t\t.append(input.getName())
.append(")
").append(input.getName()).append(" ");
if (row == 2) html.append("\n\t ");
採用模 3 餘數控制列數,產生整齊的三欄相簿佈局。
編譯後以命令列執行:
java Zoom 圖片目錄絕對路徑
程式會在該目錄下建立 zoom/ 資料夾與 index.html,直接用瀏覽器開啟即可瀏覽相簿。
ImageIO)。完整原始碼已包含於本文,可直接複製使用或根據需求修改。