Class ImageWriter

java.lang.Object
io.leandev.appfuse.image.ImageWriter
All Implemented Interfaces:
AutoCloseable

public class ImageWriter extends Object implements AutoCloseable

圖片寫入工具

提供多種輸出格式:

  • OutputStream - 寫入檔案或網路串流
  • byte[] - 記憶體中的位元組陣列
  • Data URL - Base64 編碼的 HTML 圖片 URL

使用範例

// 寫入檔案
try (ImageWriter writer = new ImageWriter(outputStream)) {
    writer.write(bufferedImage, "png");
}

// 轉換為 byte[]
byte[] imageData = ImageWriter.writeBufferedImage(bufferedImage, "jpg");

// 產生 Data URL (用於 HTML)
String dataUrl = ImageWriter.encodeBufferedImageToDataUrl(bufferedImage);
// 結果: "data:image/png;base64,iVBORw0KG..."

支援格式

常見格式:png, jpg, jpeg, gif, bmp, wbmp

格式支援取決於 Java ImageIO 的註冊編碼器

See Also:
  • Constructor Details

    • ImageWriter

      public ImageWriter(OutputStream output)
      建構 ImageWriter 實例
      Parameters:
      output - 輸出串流
  • Method Details

    • writeBufferedImage

      public static boolean writeBufferedImage(OutputStream output, BufferedImage bufferedImage) throws IOException
      寫入圖片到 OutputStream(預設 PNG 格式)
      Parameters:
      output - 輸出串流
      bufferedImage - 圖片物件
      Returns:
      是否成功寫入
      Throws:
      IOException - 寫入失敗時拋出
    • writeBufferedImage

      public static boolean writeBufferedImage(OutputStream output, BufferedImage bufferedImage, org.springframework.http.MediaType mediaType) throws IOException
      寫入圖片到 OutputStream(指定 MediaType)
      Parameters:
      output - 輸出串流
      bufferedImage - 圖片物件
      mediaType - 圖片格式(例如 MediaType.IMAGE_PNG)
      Returns:
      是否成功寫入
      Throws:
      IOException - 寫入失敗時拋出
    • writeBufferedImage

      public static boolean writeBufferedImage(OutputStream output, BufferedImage bufferedImage, String format) throws IOException
      寫入圖片到 OutputStream(指定格式字串)
      Parameters:
      output - 輸出串流
      bufferedImage - 圖片物件
      format - 圖片格式(例如 "png", "jpg")
      Returns:
      是否成功寫入
      Throws:
      IOException - 寫入失敗時拋出
    • writeBufferedImage

      public static byte[] writeBufferedImage(BufferedImage bufferedImage) throws IOException
      將圖片轉換為 byte 陣列(預設 PNG 格式)
      Parameters:
      bufferedImage - 圖片物件
      Returns:
      圖片的位元組陣列
      Throws:
      IOException - 轉換失敗時拋出
    • writeBufferedImage

      public static byte[] writeBufferedImage(BufferedImage bufferedImage, org.springframework.http.MediaType mediaType) throws IOException
      將圖片轉換為 byte 陣列(指定 MediaType)
      Parameters:
      bufferedImage - 圖片物件
      mediaType - 圖片格式
      Returns:
      圖片的位元組陣列
      Throws:
      IOException - 轉換失敗時拋出
    • writeBufferedImage

      public static byte[] writeBufferedImage(BufferedImage bufferedImage, String format) throws IOException
      將圖片轉換為 byte 陣列(指定格式字串)
      Parameters:
      bufferedImage - 圖片物件
      format - 圖片格式(例如 "png", "jpg")
      Returns:
      圖片的位元組陣列
      Throws:
      IOException - 轉換失敗時拋出
    • encodeBufferedImageToDataUrl

      public static String encodeBufferedImageToDataUrl(BufferedImage bufferedImage) throws IOException

      將圖片編碼為 HTML Data URL(預設 PNG 格式)

      產生格式:data:image/png;base64,iVBORw0KG...

      可直接用於 HTML img 標籤或 CSS background-image

      Parameters:
      bufferedImage - 圖片物件
      Returns:
      Base64 編碼的 Data URL
      Throws:
      IOException - 編碼失敗時拋出
    • encodeBufferedImageToDataUrl

      public static String encodeBufferedImageToDataUrl(BufferedImage bufferedImage, org.springframework.http.MediaType mediaType) throws IOException
      將圖片編碼為 HTML Data URL(指定 MediaType)
      Parameters:
      bufferedImage - 圖片物件
      mediaType - 圖片格式
      Returns:
      Base64 編碼的 Data URL
      Throws:
      IOException - 編碼失敗時拋出
    • encodeBufferedImageToDataUrl

      public static String encodeBufferedImageToDataUrl(BufferedImage bufferedImage, String format) throws IOException
      將圖片編碼為 HTML Data URL(指定格式字串)
      Parameters:
      bufferedImage - 圖片物件
      format - 圖片格式(例如 "png", "jpg")
      Returns:
      Base64 編碼的 Data URL
      Throws:
      IOException - 編碼失敗時拋出
    • write

      public boolean write(BufferedImage image) throws IOException
      寫入圖片(預設 PNG 格式)
      Parameters:
      image - 圖片物件
      Returns:
      是否成功寫入
      Throws:
      IOException - 寫入失敗時拋出
    • write

      public boolean write(BufferedImage image, org.springframework.http.MediaType mediaType) throws IOException
      寫入圖片(指定 MediaType)
      Parameters:
      image - 圖片物件
      mediaType - 圖片格式
      Returns:
      是否成功寫入
      Throws:
      IOException - 寫入失敗時拋出
    • write

      public boolean write(BufferedImage image, String format) throws IOException
      寫入圖片(指定格式字串)
      Parameters:
      image - 圖片物件
      format - 圖片格式(例如 "png", "jpg")
      Returns:
      是否成功寫入
      Throws:
      IOException - 寫入失敗時拋出
    • close

      public void close() throws IOException
      關閉輸出串流
      Specified by:
      close in interface AutoCloseable
      Throws:
      IOException - 關閉失敗時拋出