JavaTM 2 Platform
Standard Ed. 6

javax.imageio
類別 ImageWriter

java.lang.Object
  繼承者 javax.imageio.ImageWriter
所有已實作的介面:
ImageTranscoder

public abstract class ImageWriter
extends Object
implements ImageTranscoder

用來編碼和寫入圖像的抽象父級類別。此類別必須由在 Java Image I/O 框架的上下文中寫出圖像的類別為其創建子類別。

通常由特定格式的服務提供者類別對 ImageWriter 物件進行實例化。服務提供者類別在 IIORegistry 中註冊,後者使用前者進行格式識別和表示可用格式 reader 和 writer。

另請參見:
ImageReader, ImageWriteParam, IIORegistry, ImageWriterSpi

欄位摘要
protected  Locale[] availableLocales
          可以用來本地化警告訊息和壓縮設置值的 Locale 組成的陣列,如果本地化不受支持,則將它們初始化為 null
protected  Locale locale
          用於本地化的當前 Locale,如果沒有設置 Locale,則將它初始化為 null
protected  ImageWriterSpi originatingProvider
          實例化此物件的 ImageWriterSpi,如果 ImageWriterSpi 的標識是未知的或不存在,則將此物件實例化為 null
protected  Object output
          由 setOutput 設置並由 getOutput 獲取的 ImageOutputStream 或其他 Object
protected  List<IIOWriteProgressListener> progressListeners
          當前已註冊 IIOWriteProgressListenerList,預設情況下將它初始化為 null,它與空 List 同義。
protected  List<IIOWriteWarningListener> warningListeners
          當前已註冊 IIOWriteWarningListenerList,預設情況下將它初始化為 null,它與空 List 同義。
protected  List<Locale> warningLocales
          LocaleListwarningListeners 的每個元素都有一個 Locale 列表,預設情況下該列表被初始化為 null,它與空 List 同義。
 
建構子摘要
protected ImageWriter(ImageWriterSpi originatingProvider)
          建構一個 ImageWriter,並將其 originatingProvider 實例變數設置為所提供的值。
 
方法摘要
 void abort()
          請求中止任何當前寫入操作。
protected  boolean abortRequested()
          如果自從 writer 被實例化或 clearAbortRequest 被調用開始,已經發出中止當前寫入操作的請求,則返回 true
 void addIIOWriteProgressListener(IIOWriteProgressListener listener)
          將 IIOWriteProgressListener 添加到已註冊的進度偵聽器列表中。
 void addIIOWriteWarningListener(IIOWriteWarningListener listener)
          將 IIOWriteWarningListener 添加到已註冊的警告偵聽器的列表中。
 boolean canInsertEmpty(int imageIndex)
          如果 writer 支持在給定索引處插入新的空圖像,則返回 true
 boolean canInsertImage(int imageIndex)
          如果 writer 支持在給定索引處插入新圖像,則返回 true
 boolean canRemoveImage(int imageIndex)
          如果 writer 支持在給定索引處移除現有圖像,則返回 true
 boolean canReplaceImageMetadata(int imageIndex)
          如果有可能使用索引 imageIndex 替換與現有圖像有關的圖像元資料,則返回 true
 boolean canReplacePixels(int imageIndex)
          如果 writer 允許使用 replacePixels 方法替換給定圖像的索引,則返回 true
 boolean canReplaceStreamMetadata()
          如果有可能替換已存在於輸出中的串流元資料,則返回 true
 boolean canWriteEmpty()
          如果 writer 支持寫入由單個圖像組成的完整圖像串流,則返回 true,這些物件帶有要輸出的不確定像素值、有關元資料和縮略圖。
 boolean canWriteRasters()
          如果採用 IIOImage 參數的方法能夠處理 Raster(相對於 RenderedImage)源圖像,則返回 true
 boolean canWriteSequence()
          如果 writer 能夠將圖像添加到已經包含頭資訊和可能的以前圖像的圖像串流中,則返回 true
protected  void clearAbortRequest()
          清除任何以前的中止請求。
abstract  IIOMetadata convertImageMetadata(IIOMetadata inData, ImageTypeSpecifier imageType, ImageWriteParam param)
          返回一個 IIOMetadata 物件,該物件可用於編碼,並且可以使用其文檔介面或特定於將用於編碼的 writer 外掛程式的其他介面有選擇地對其進行修改。
abstract  IIOMetadata convertStreamMetadata(IIOMetadata inData, ImageWriteParam param)
          返回一個 IIOMetadata 物件,該物件可用於編碼,並且可以使用其文檔介面或特定於將用於編碼的 writer 外掛程式的其他介面有選擇地對其進行修改。
 void dispose()
          允許釋放此物件保存的所有資源。
 void endInsertEmpty()
          完成對新圖像的插入,該操作是從以前調用 prepareInsertEmpty 開始的。
 void endReplacePixels()
          終止調用 replacePixels 的序列。
 void endWriteEmpty()
          完成對新圖像的寫入,該操作是從優先調用 prepareWriteEmpty 開始的。
 void endWriteSequence()
          完成以 prepareWriteSequence 開頭的一系列圖像的寫入。
 Locale[] getAvailableLocales()
          返回可用來初始化警告偵聽器和壓縮設置的 Locale 組成的陣列。
abstract  IIOMetadata getDefaultImageMetadata(ImageTypeSpecifier imageType, ImageWriteParam param)
          返回包含用來編碼給定型別圖像的預設值的 IIOMetadata 物件。
abstract  IIOMetadata getDefaultStreamMetadata(ImageWriteParam param)
          返回包含用來對圖像串流進行編碼的預設值的 IIOMetadata 物件。
 ImageWriteParam getDefaultWriteParam()
          返回適用於此檔案格式的適當型別的新 ImageWriteParam 物件,該物件包含預設值,即那些將在沒有指定 ImageWriteParam 物件時使用的值。
 Locale getLocale()
          返回當前設置的 Locale,如果沒有設置 Locale,則返回 null
 int getNumThumbnailsSupported(ImageTypeSpecifier imageType, ImageWriteParam param, IIOMetadata streamMetadata, IIOMetadata imageMetadata)
          返回受將寫入的格式、給定圖像型別和任何其他 write 參數支持的縮略圖,以及將在編碼期間使用的元資料物件。
 ImageWriterSpi getOriginatingProvider()
          返回創建此 ImageWriterImageWriterSpi 物件,如果此物件不是通過 IIORegistry 創建的,則返回 null
 Object getOutput()
          返回 ImageOutputStream 或最近一次調用 setOutput 方法設置的其他 Object如果沒有設置目標,則返回 null
 Dimension[] getPreferredThumbnailSizes(ImageTypeSpecifier imageType, ImageWriteParam param, IIOMetadata streamMetadata, IIOMetadata imageMetadata)
          返回一個 Dimension 陣列,指示在輸出檔案或串流中進行編碼時合法的縮略圖大小範圍。
 void prepareInsertEmpty(int imageIndex, ImageTypeSpecifier imageType, int width, int height, IIOMetadata imageMetadata, List<? extends BufferedImage> thumbnails, ImageWriteParam param)
          從將帶有不確定像素值的新圖像插入現有圖像串流中開始。
 void prepareReplacePixels(int imageIndex, Rectangle region)
          準備好 writer,處理一系列對 replacePixels 方法的調用。
 void prepareWriteEmpty(IIOMetadata streamMetadata, ImageTypeSpecifier imageType, int width, int height, IIOMetadata imageMetadata, List<? extends BufferedImage> thumbnails, ImageWriteParam param)
          從寫入完整圖像串流開始,該圖像串流由帶有要輸出的不確定像素值、有關元資料和縮略圖的單個圖像組成。
 void prepareWriteSequence(IIOMetadata streamMetadata)
          使用提供的串流元資料物件準備一個串流,以接受一系列的後續 writeToSequence 調用。
protected  void processImageComplete()
          通過調用 imageComplete 方法向所有已註冊 IIOWriteProgressListener 廣播圖像寫入的完成。
protected  void processImageProgress(float percentageDone)
          通過調用 imageProgress 方法向所有已註冊 IIOWriteProgressListener 廣播圖像完成的當前百分比。
protected  void processImageStarted(int imageIndex)
          通過調用 imageStarted 方法向所有已註冊 IIOWriteProgressListener 廣播開始寫入圖像的起始處。
protected  void processThumbnailComplete()
          通過調用 thumbnailComplete 方法向所有已註冊 IIOWriteProgressListener 廣播縮略圖寫入的完成。
protected  void processThumbnailProgress(float percentageDone)
          通過調用 thumbnailProgress 方法向所有已註冊 IIOWriteProgressListener 廣播縮略圖完成的當前百分比。
protected  void processThumbnailStarted(int imageIndex, int thumbnailIndex)
          通過調用 thumbnailStarted 方法向所有已註冊 IIOWriteProgressListener 廣播縮略圖寫入的起始處。
protected  void processWarningOccurred(int imageIndex, String warning)
          通過調用 warningOccurred 方法向所有已註冊 IIOWriteWarningListener 廣播一條警告訊息。
protected  void processWarningOccurred(int imageIndex, String baseName, String keyword)
          通過使用取自 ResourceBundle 的字元串調用 warningOccurred 方法來向所有已註冊 IIOWriteWarningListener 廣播一條本地化警告訊息。
protected  void processWriteAborted()
          通過調用 readAborted 方法向對所有已註冊 IIOWriteProgressListener 廣播寫入已經中止。
 void removeAllIIOWriteProgressListeners()
          移除所有當前已註冊的 IIOWriteProgressListener 物件。
 void removeAllIIOWriteWarningListeners()
          移除所有當前已註冊的 IIOWriteWarningListener 物件。
 void removeIIOWriteProgressListener(IIOWriteProgressListener listener)
          從已註冊的進度偵聽器列表中移除 IIOWriteProgressListener
 void removeIIOWriteWarningListener(IIOWriteWarningListener listener)
          從已註冊的警告偵聽器列表中移除 IIOWriteWarningListener
 void removeImage(int imageIndex)
          從串流中移除圖像。
 void replaceImageMetadata(int imageIndex, IIOMetadata imageMetadata)
          替換與現有圖像有關的圖像元資料。
 void replacePixels(Raster raster, ImageWriteParam param)
          用給定 Raster 部分替換已出現在輸出中的圖像部分。
 void replacePixels(RenderedImage image, ImageWriteParam param)
          用給定圖像部分替換已出現在輸出中的圖像部分。
 void replaceStreamMetadata(IIOMetadata streamMetadata)
          使用新資訊替換輸出中的串流元資料。
 void reset()
          將 ImageWriter 恢復到其初始狀態。
 void setLocale(Locale locale)
          將此 ImageWriter 的當前 Locale 設置為給定值。
 void setOutput(Object output)
          將目標設置為給定 ImageOutputStream 或其他 Object
 void write(IIOImage image)
          將包含帶有預設元資料和縮略圖的單個圖像的完整圖像串流添加到輸出中。
abstract  void write(IIOMetadata streamMetadata, IIOImage image, ImageWriteParam param)
          添加一個完整的圖像串流,該圖像串流包含一幅圖像、相關的串流、圖像元資料和要輸出的縮略圖。
 void write(RenderedImage image)
          將由帶有預設元資料和縮略圖的單個圖像組成的完整圖像串流添加到輸出中。
 void writeInsert(int imageIndex, IIOImage image, ImageWriteParam param)
          將新的圖像插入現有圖像串流。
 void writeToSequence(IIOImage image, ImageWriteParam param)
          將單幅圖像、可能相關的元資料和縮略圖添加到輸出中。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

originatingProvider

protected ImageWriterSpi originatingProvider
實例化此物件的 ImageWriterSpi,如果 ImageWriterSpi 的標識是未知的或不存在,則將此物件實例化為 null。預設情況下,將此物件實例化為 null


output

protected Object output
setOutput 設置並由 getOutput 獲取的 ImageOutputStream 或其他 Object。預設情況下,將此物件實例化為 null


availableLocales

protected Locale[] availableLocales
可以用來本地化警告訊息和壓縮設置值的 Locale 組成的陣列,如果本地化不受支持,則將它們初始化為 null。預設情況下,將它們初始化為 null


locale

protected Locale locale
用於本地化的當前 Locale,如果沒有設置 Locale,則將它初始化為 null。預設情況下,將 Locale 初始化為 null


warningListeners

protected List<IIOWriteWarningListener> warningListeners
當前已註冊 IIOWriteWarningListenerList,預設情況下將它初始化為 null,它與空 List 同義。


warningLocales

protected List<Locale> warningLocales
LocaleListwarningListeners 的每個元素都有一個 Locale 列表,預設情況下該列表被初始化為 null,它與空 List 同義。


progressListeners

protected List<IIOWriteProgressListener> progressListeners
當前已註冊 IIOWriteProgressListenerList,預設情況下將它初始化為 null,它與空 List 同義。

建構子詳細資訊

ImageWriter

protected ImageWriter(ImageWriterSpi originatingProvider)
建構一個 ImageWriter,並將其 originatingProvider 實例變數設置為所提供的值。

為了獲取擴展物件,利用擴展的子類別應該為建構子提供簽章 (ImageWriterSpi, Object)。如果擴展物件不合適,則將拋出 IllegalArgumentException

參數:
originatingProvider - 建構此物件的 ImageWriterSpi,或者為 null
方法詳細資訊

getOriginatingProvider

public ImageWriterSpi getOriginatingProvider()
返回創建此 ImageWriterImageWriterSpi 物件,如果此物件不是通過 IIORegistry 創建的,則返回 null

預設的實作返回 originatingProvider 實例變數的值。

返回:
一個 ImageWriterSpinull
另請參見:
ImageWriterSpi

setOutput

public void setOutput(Object output)
將目標設置為給定 ImageOutputStream 或其他 Object。假定目標已準備接受資料,並將在結束每次寫入時關閉。這允許受干擾的圖像處理應用程序通過單獨的網路連接傳輸一系列圖像。如果 outputnull,則將移除所有當前已設置的輸出。

如果 output 是一個 ImageOutputStream,則調用 writewriteToSequenceprepareWriteEmpty/endWriteEmpty 方法將保留串流的現有內容。其他寫入方法,比如 writeInsertreplaceStreamMetadatareplaceImageMetadatareplacePixelsprepareInsertEmpty/endInsertEmptyendWriteSequence,要求可讀取和寫入該串流的全部內容,並且可以更改該串流的任何部分。

對於直接與輸出設備或圖像協議交互的 writer,打算使用一般的 Object,而不是使用 ImageOutputStream。合法類別集是由 writer 的服務提供者的 getOutputTypes 方法公開的。大多數 writer 將返回一個單個元素組成的陣列,該陣列只包含指示它們只接受 ImageOutputStreamImageOutputStream.class

在根據原始提供者(如果有)公開的類別集合檢查 output 之後,預設實作將 output 實例變數設置為 output 的值。

參數:
output - 用於以後的寫入的 ImageOutputStream 或其他 Object
拋出:
IllegalArgumentException - 如果 output 不是原始服務提供者的 getOutputTypes 方法返回的某個類別的實例。
另請參見:
getOutput()

getOutput

public Object getOutput()
返回 ImageOutputStream 或最近一次調用 setOutput 方法設置的其他 Object如果沒有設置目標,則返回 null

預設實作返回 output 實例變數的值。

返回:
使用 setOutput 指定的 Object,或者返回 null
另請參見:
setOutput(java.lang.Object)

getAvailableLocales

public Locale[] getAvailableLocales()
返回可用來初始化警告偵聽器和壓縮設置的 Locale 組成的陣列。返回 null 值指示初始化不受支持。

如果 availableLocales 實例變數是非 null 的,則預設實作返回該變數的副本,否則返回 null

返回:
可能用作 setLocale 的參數的 Locale 組成的陣列,或者返回 null

setLocale

public void setLocale(Locale locale)
將此 ImageWriter 的當前 Locale 設置為給定值。值為 null 則移除所有以前的設置,並指示 writer 應該根據需要對其進行初始化。

預設實作根據 getAvailableLocales 返回的值檢查 locale,並設置 locale 實例變數(如果尋找到的話)。如果 localenull,則將該實例變數設置為 null,不必執行任何檢查。

參數:
locale - 所需的 Locale,或者為 null
拋出:
IllegalArgumentException - 如果 locale 為非 null,但它不是 getAvailableLocales 返回的值之一。
另請參見:
getLocale()

getLocale

public Locale getLocale()
返回當前設置的 Locale,如果沒有設置 Locale,則返回 null

預設實作返回 locale 實例變數的值。

返回:
當前 Localenull
另請參見:
setLocale(java.util.Locale)

getDefaultWriteParam

public ImageWriteParam getDefaultWriteParam()
返回適用於此檔案格式的適當型別的新 ImageWriteParam 物件,該物件包含預設值,即那些將在沒有指定 ImageWriteParam 物件時使用的值。將此作為只調整少數幾個參數並不管預設設置的起點很有用。

預設設置建構並返回一個新的 ImageWriteParam 物件,該物件不允許平鋪、逐步編碼或壓縮,並且將針對當前 Locale 通過調用 new ImageWriteParam(getLocale()) 獲得的 Locale)對該物件進行本地化。

個別外掛程式可能在啟用額外可選特性的情況下返回 ImageWriteParam 的實例,或者它們可以返回 ImageWriteParam 的特定於外掛程式的子類別的實例。

返回:
包含預設值的新的 ImageWriteParam 物件。

getDefaultStreamMetadata

public abstract IIOMetadata getDefaultStreamMetadata(ImageWriteParam param)
返回包含用來對圖像串流進行編碼的預設值的 IIOMetadata 物件。該物件的內容可以使用由 IIOMetadata.getAsTree 方法返回的 XML 階層樹型結構(一個 IIOMetadataController 物件)來操作,或者通過特定於外掛程式的介面以及提供給某一帶有串流元資料參數的 write 方法的所得資料來操作。

可以對可能影響串流元資料結構的情況提供一個可選的 ImageWriteParam

如果所提供的 ImageWriteParam 套件含不受此 writer 支持的可選設置值(例如 逐步編碼或任何特定於格式的設置),則將忽略這些設置。

不使用串流元資料的 writer(例如 用於單一圖像格式的 writer)應該返回 null

參數:
param - 將用於對圖像進行編碼的 ImageWriteParam,或者為 null
返回:
IIOMetadata 物件。

getDefaultImageMetadata

public abstract IIOMetadata getDefaultImageMetadata(ImageTypeSpecifier imageType,
                                                    ImageWriteParam param)
返回包含用來編碼給定型別圖像的預設值的 IIOMetadata 物件。該物件的內容可以使用由 IIOMetadata.getAsTree 方法返回的 XML 階層樹型結構(一個 IIOMetadataController 物件)來操作,或者通過特定於外掛程式的介面以及提供給某一帶有串流元資料參數的 write 方法的所得資料來操作。

可以對可能影響圖像元資料結構的情況提供一個可選的 ImageWriteParam

如果所提供的 ImageWriteParam 套件含不受此 writer 支持的可選設置值(例如 逐步編碼或任何特定於格式的設置),則將忽略這些設置。

參數:
imageType - 指示稍後將寫入的圖像格式的 ImageTypeSpecifier
param - 將用於對圖像進行編碼的 ImageWriteParam,或者為 null
返回:
IIOMetadata 物件。

convertStreamMetadata

public abstract IIOMetadata convertStreamMetadata(IIOMetadata inData,
                                                  ImageWriteParam param)
從介面 ImageTranscoder 複製的描述
返回一個 IIOMetadata 物件,該物件可用於編碼,並且可以使用其文檔介面或特定於將用於編碼的 writer 外掛程式的其他介面有選擇地對其進行修改。

可以提供一個可選的 ImageWriteParam,用於其能影響串流元資料的結構的情況。

如果所提供的 ImageWriteParam 套件含可選的、不被此 writer 或 transcoder 理解的設置值,則忽略這些值。

指定者:
介面 ImageTranscoder 中的 convertStreamMetadata
參數:
inData - 表示串流元資料的 IIOMetadata 物件,用於初始化所返回物件的狀態。
param - 將用於對圖像進行編碼的 ImageWriteParam,或者為 null
返回:
一個 IIOMetadata 物件,如果外掛程式沒有提供元資料編碼功能,則返回 null

convertImageMetadata

public abstract IIOMetadata convertImageMetadata(IIOMetadata inData,
                                                 ImageTypeSpecifier imageType,
                                                 ImageWriteParam param)
從介面 ImageTranscoder 複製的描述
返回一個 IIOMetadata 物件,該物件可用於編碼,並且可以使用其文檔介面或特定於將用於編碼的 writer 外掛程式的其他介面有選擇地對其進行修改。

可以提供一個可選的 ImageWriteParam,用於其能影響圖像元資料的結構的情況。

如果所提供的 ImageWriteParam 套件含可選的、不被此 writer 或 transcoder 理解的設置值,則忽略這些值。

指定者:
介面 ImageTranscoder 中的 convertImageMetadata
參數:
inData - 表示圖像元資料的 IIOMetadata 物件,用於初始化所返回物件的狀態。
imageType - 指示將與元資料關聯的圖像的佈局和顏色資訊的 ImageTypeSpecifier
param - 將用於對圖像進行編碼的 ImageWriteParam,或者為 null
返回:
一個 IIOMetadata 物件,如果外掛程式沒有提供元資料編碼功能,則返回 null

getNumThumbnailsSupported

public int getNumThumbnailsSupported(ImageTypeSpecifier imageType,
                                     ImageWriteParam param,
                                     IIOMetadata streamMetadata,
                                     IIOMetadata imageMetadata)
返回受將寫入的格式、給定圖像型別和任何其他 write 參數支持的縮略圖,以及將在編碼期間使用的元資料物件。返回 -1 值指示可用資訊不足。

可以對可能影響縮略圖處理的情況有選擇地提供 ImageWriteParam

如果所提供的 ImageWriteParam 套件含不受此 writer 支持的可選設置值(例如 逐步編碼或任何特定於格式的設置),則將忽略這些設置。

預設實作返回 0。

參數:
imageType - 指示將寫入的圖像型別的 ImageTypeSpecifier,或者該參數為 null
param - 將用於寫入操作的 ImageWriteParam,或者為 null
streamMetadata - 將用於寫入操作的 IIOMetadata 物件,或者為 null
imageMetadata - 將用於寫入操作的 IIOMetadata 物件,或者為 null
返回:
可能在已知所提供參數的情況下寫入的縮略圖數,如果可用資訊不足,則返回 -1

getPreferredThumbnailSizes

public Dimension[] getPreferredThumbnailSizes(ImageTypeSpecifier imageType,
                                              ImageWriteParam param,
                                              IIOMetadata streamMetadata,
                                              IIOMetadata imageMetadata)
返回一個 Dimension 陣列,指示在輸出檔案或串流中進行編碼時合法的縮略圖大小範圍。此資訊只是建議性的;writer 將根據需要重新調整所提供縮略圖的大小。

資訊是作為 pair 的集合返回的;pair 的第一個元素包含最小寬度和高度,第二個元素包含最大寬度和高度。同時,每個 pair 定義一個有效大小範圍。要定義固定大小,將對兩個元素顯示相同的寬度和高度。返回值為 null 指示大小是任意的或未知的。

可以對可能影響縮略圖處理的情況有選擇地提供 ImageWriteParam

如果所提供的 ImageWriteParam 套件含不受此 writer 支持的可選設置值(例如 逐步編碼或任何特定於格式的設置),則將忽略這些設置。

預設實作返回 null

參數:
imageType - 指示將寫入的圖像型別的 ImageTypeSpecifier,或者該參數為 null
param - 將用於寫入操作的 ImageWriteParam,或者為 null
streamMetadata - 將用於寫入操作的 IIOMetadata 物件,或者為 null
imageMetadata - 將用於寫入操作的 IIOMetadata 物件,或者為 null
返回:
平均長度至少為 2 的 Dimension 組成的陣列,或者返回 null

canWriteRasters

public boolean canWriteRasters()
如果採用 IIOImage 參數的方法能夠處理 Raster(相對於 RenderedImage)源圖像,則返回 true。如果此方法返回 false,則這些方法將在包含 RasterIIOImage 中拋出一個 UnsupportedOperationException(如果提供)。

預設實作返回 false

返回:
如果 Raster 源受支持,則返回 true

write

public abstract void write(IIOMetadata streamMetadata,
                           IIOImage image,
                           ImageWriteParam param)
                    throws IOException
添加一個完整的圖像串流,該圖像串流包含一幅圖像、相關的串流、圖像元資料和要輸出的縮略圖。還包括任何必要的頭資訊。如果輸出是一個 ImageOutputStream,則位於當前尋找位置之前的現有內容不受影響,並且這些內容不必是可讀或可寫的。

必須使用 setOutput 方法提前設置輸出。

串流元資料可以有選擇地提供;如果它為 null,則使用預設元資料。

如果 canWriteRasters 返回 true,則 IIOImage 可以包含一個 Raster 源。否則,它必須包含一個 RenderedImage 源。

所提供的縮略圖將被重新調整大小(如果需要),並且超過所支持數量的所有縮略圖都將被忽略。如果該格式需要沒有提供的額外縮略圖,則 writer 應該在內部產生這些縮略圖。

可以有選擇地提供 ImageWriteParam 來控制寫入過程。如果 paramnull,則將使用預設 write 參數。

如果所提供的 ImageWriteParam 套件含不受此 writer 支持的可選設置值(例如 逐步編碼或任何特定於格式的設置),則將忽略這些設置。

參數:
streamMetadata - 表示串流元資料的 IIOMetadata 物件,或者為 null,表示使用預設值。
image - 套件含要寫入的圖像、縮略圖和元資料的 IIOImage 物件。
param - 一個 ImageWriteParam,或者為 null,表示使用預設 ImageWriteParam
拋出:
IllegalStateException - 如果尚未設置輸出。
UnsupportedOperationException - 如果 image 套件含一個 Raster,並且 canWriteRasters 返回 false
IllegalArgumentException - 如果 imagenull
IOException - 如果在寫入過程中發生錯誤。

write

public void write(IIOImage image)
           throws IOException
將包含帶有預設元資料和縮略圖的單個圖像的完整圖像串流添加到輸出中。此方法是 write(null, image, null) 的簡略表達方式。

參數:
image - 套件含要寫入的圖像、縮略圖和元資料的 IIOImage 物件。
拋出:
IllegalStateException - 如果尚未設置輸出。
IllegalArgumentException - 如果 imagenull
UnsupportedOperationException - 如果 image 套件含一個 Raster,並且 canWriteRasters 返回 false
IOException - 如果在寫入過程中發生錯誤。

write

public void write(RenderedImage image)
           throws IOException
將由帶有預設元資料和縮略圖的單個圖像組成的完整圖像串流添加到輸出中。此方法是 write(null, new IIOImage(image, null, null), null) 的簡略表達方式。

參數:
image - 要寫入的 RenderedImage
拋出:
IllegalStateException - 如果尚未設置輸出。
IllegalArgumentException - 如果 imagenull
IOException - 如果在寫入過程中發生錯誤。

canWriteSequence

public boolean canWriteSequence()
如果 writer 能夠將圖像添加到已經包含頭資訊和可能的以前圖像的圖像串流中,則返回 true

如果 canWriteSequence 返回 falsewriteToSequenceendWriteSequence 將拋出 UnsupportedOperationException

預設實作返回 false

返回:
如果可以按順序添加圖像,則返回 true

prepareWriteSequence

public void prepareWriteSequence(IIOMetadata streamMetadata)
                          throws IOException
使用提供的串流元資料物件準備一個串流,以接受一系列的後續 writeToSequence 調用。如果應該先於圖像資料,則應該將元資料寫入串流中。如果該參數為 null,則使用預設串流元資料。

如果輸出是一個 ImageOutputStream,則不刷新位於當前尋找位置之前的輸出的現有內容,並且這些內容不必是可讀或可寫的。如果該格式要求 endWriteSequence 能夠重新修補頭資訊,比如用於單個 TIFF 檔案中的一系列圖像的頭資訊,則此方法寫入的元資料必須仍然位於串流的可寫部分中。其他格式可以在此方法之後和每幅圖像之後刷新串流。

如果 canWriteSequence 返回 false,則此方法將拋出 UnsupportedOperationException

必須使用 setOutput 方法提前設置輸出。

如果輸出為 null,則預設實作拋出 IllegalStateException,否則拋出 UnsupportedOperationException

參數:
streamMetadata - 一個串流元資料物件,或者為 null
拋出:
IllegalStateException - 如果尚未設置輸出。
UnsupportedOperationException - 如果 canWriteSequence 返回 false
IOException - 如果在寫入串流元資料過程中發生錯誤。

writeToSequence

public void writeToSequence(IIOImage image,
                            ImageWriteParam param)
                     throws IOException
將單幅圖像、可能相關的元資料和縮略圖添加到輸出中。如果輸出是 ImageOutputStream,則可能刷新當前尋找位置之前的輸出的現有內容,並且這些內容不必是可讀的或可寫的,除非外掛程式必須能夠在調用 endWriteSequence 時修補頭資訊(例如 TIFF)。

如果 canWriteSequence 返回 false,則此方法將拋出 UnsupportedOperationException

必須使用 setOutput 方法提前設置輸出。

prepareWriteSequence 必須提前調用,否則將拋出 IllegalStateException

如果 canWriteRasters 返回 true,則 IIOImage 可以包含一個 Raster 源。否則,它必須包含一個 RenderedImage 源。

所提供的縮略圖將被重新調整大小(如果需要),並且超過所支持數量的所有縮略圖都將被忽略。如果該格式需要沒有提供的其他縮略圖,則 writer 將在內部產生這些縮略圖。

可以有選擇地提供 ImageWriteParam 來控制寫入過程。如果 paramnull,則將使用預設 write 參數。

如果所提供的 ImageWriteParam 套件含不受此 writer 支持的可選設置值(例如 逐步編碼或任何特定於格式的設置),則將忽略這些設置。

如果輸出為 null,則預設實作拋出 IllegalStateException,否則拋出 UnsupportedOperationException

參數:
image - 套件含要寫入的圖像、縮略圖和元資料的 IIOImage 物件。
param - 一個 ImageWriteParam;或者為 null,表示使用預設 ImageWriteParam
拋出:
IllegalStateException - 如果沒有設置輸出,或者沒有調用 prepareWriteSequence
UnsupportedOperationException - 如果 canWriteSequence 返回 false
IllegalArgumentException - 如果 imagenull
UnsupportedOperationException - 如果 image 套件含一個 Raster,並且 canWriteRasters 返回 false
IOException - 如果寫入過程中發生錯誤。

endWriteSequence

public void endWriteSequence()
                      throws IOException
完成以 prepareWriteSequence 開頭的一系列圖像的寫入。應該出現在這一系列圖像的末尾的所有串流元資料都被寫出,如果需要,可修補位於該序列的開始處的任何頭資訊。如果輸出是 ImageOutputStream,則一直到序列末尾處的串流元資料的那些資料將被刷新,它們不必是可讀的或可寫的。

如果 canWriteSequence 返回 false,則此方法將拋出 UnsupportedOperationException

如果輸出為 null,則預設實作拋出 IllegalStateException,否則拋出 UnsupportedOperationException

拋出:
IllegalStateException - 如果沒有設置輸出,或者沒有調用 prepareWriteSequence
UnsupportedOperationException - 如果 canWriteSequence 返回 false
IOException - 如果在寫入過程中發生錯誤。

canReplaceStreamMetadata

public boolean canReplaceStreamMetadata()
                                 throws IOException
如果有可能替換已存在於輸出中的串流元資料,則返回 true

如果輸出為 null,則預設實作拋出 IllegalStateException,否則返回 false

返回:
如果允許替換串流元資料,則返回 true
拋出:
IllegalStateException - 如果尚未設置輸出。
IOException - 如果在查詢期間發生 I/O 錯誤。

replaceStreamMetadata

public void replaceStreamMetadata(IIOMetadata streamMetadata)
                           throws IOException
使用新資訊替換輸出中的串流元資料。如果輸出為 ImageOutputStream,則檢查該串流以前的內容,並且可能對它們進行編輯,為新的資料騰出空間。該輸出以前的所有內容必須可用於讀取和寫入。

如果 canReplaceStreamMetadata 返回 false,則將拋出 UnsupportedOperationException

如果輸出為 null,則預設實作拋出 IllegalStateException,否則拋出 UnsupportedOperationException

參數:
streamMetadata - 表示串流元資料的 IIOMetadata 物件;或者為 null,表示使用預設值。
拋出:
IllegalStateException - 如果尚未設置輸出。
UnsupportedOperationException - 如果 canReplaceStreamMetadata 返回 false。網要不包括在內
IOException - 如果寫入期間發生錯誤。

canReplaceImageMetadata

public boolean canReplaceImageMetadata(int imageIndex)
                                throws IOException
如果有可能使用索引 imageIndex 替換與現有圖像有關的圖像元資料,則返回 true。如果此方法返回 false,那麼調用 replaceImageMetadata(imageIndex) 將拋出 UnsupportedOperationException

不支持任何圖像元資料替換的 writer 可以返回 false,而不必對索引執行範圍檢查。

如果輸出為 null,則預設實作拋出 IllegalStateException,否則返回 false,而不必檢查 imageIndex 的值。

參數:
imageIndex - 其元資料將被替換的圖像的索引。
返回:
如果可以替換給定圖像的圖像元資料,則返回 true
拋出:
IllegalStateException - 如果尚未設置輸出。
IndexOutOfBoundsException - 如果 writer 在一般情況下支持圖像元資料替換,但 imageIndex 小於 0 或大於最大可用索引。
IOException - 如果在查詢期間發生 I/O 錯誤。

replaceImageMetadata

public void replaceImageMetadata(int imageIndex,
                                 IIOMetadata imageMetadata)
                          throws IOException
替換與現有圖像有關的圖像元資料。

如果 canReplaceImageMetadata(imageIndex) 返回 false,則將拋出 UnsupportedOperationException

如果輸出為 null,則預設實作拋出 IllegalStateException,否則拋出 UnsupportedOperationException

參數:
imageIndex - 其元資料將被替換的圖像的索引。
imageMetadata - 表示圖像元資料的 IIOMetadata 物件,或者為 null
拋出:
IllegalStateException - 如果尚未設置輸出。
UnsupportedOperationException - 如果 canReplaceImageMetadata 返回 false
IndexOutOfBoundsException - 如果 imageIndex 小於 0 或大於最大可用索引。
IOException - 如果在寫入過程中發生錯誤。

canInsertImage

public boolean canInsertImage(int imageIndex)
                       throws IOException
如果 writer 支持在給定索引處插入新圖像,則返回 true。索引等於或大於插入索引的現有圖像會將其索引加 1。值為 -1imageIndex 可用於表示大於當前最大索引的索引。

不支持任何圖像插入的 writer 可以返回 false,而不必對索引執行範圍檢查。

如果輸出為 null,則預設實作拋出 IllegalStateException,否則返回 false,而不必檢查 imageIndex 的值。

參數:
imageIndex - 將在其所在位置處插入圖像的索引。
返回:
如果可以在給定索引處插入圖像,則返回 true
拋出:
IllegalStateException - 如果尚未設置輸出。
IndexOutOfBoundsException - 如果 writer 在一般情況下支持圖像插入,但 imageIndex 小於 -1 或大於最大可用索引。
IOException - 如果在查詢期間發生 I/O 錯誤。

writeInsert

public void writeInsert(int imageIndex,
                        IIOImage image,
                        ImageWriteParam param)
                 throws IOException
將新的圖像插入現有圖像串流。索引大於 imageIndex 的現有圖像被保留,其索引均被加 1。為 -1 的 imageIndex 值可用於表示大於以前最大索引的索引;也就是說,它將導致圖像按邏輯添加到序列的末尾。如果輸出是一個 ImageOutputStream,則整個串流都必須是可讀並且可寫的。

如果 canInsertImage(imageIndex) 返回 false,則將拋出 UnsupportedOperationException

可以有選擇地提供 ImageWriteParam 來控制寫入過程。如果 paramnull,則將使用預設 write 參數。

如果所提供的 ImageWriteParam 套件含不受此 writer 支持的可選設置值(例如 逐步編碼或任何特定於格式的設置),則將忽略這些設置。

如果輸出為 null,則預設實作拋出 IllegalStateException,否則拋出 UnsupportedOperationException

參數:
imageIndex - 將在其所在位置處寫入圖像的索引。
image - 套件含要寫入的圖像、縮略圖和元資料的 IIOImage 物件。
param - 一個 ImageWriteParam,或者為 null,表示使用預設 ImageWriteParam
拋出:
IllegalStateException - 如果尚未設置輸出。
UnsupportedOperationException - 如果 canInsertImage(imageIndex) 返回 false
IllegalArgumentException - 如果 imagenull
IndexOutOfBoundsException - 如果 imageIndex 小於 -1 或大於最大可用索引。
UnsupportedOperationException - 如果 image 套件含一個 Raster,並且 canWriteRasters 返回 false
IOException - 如果在寫入過程中發生錯誤。

canRemoveImage

public boolean canRemoveImage(int imageIndex)
                       throws IOException
如果 writer 支持在給定索引處移除現有圖像,則返回 true。對於索引大於插入索引的圖像,其索引將增加 1。

不支持任何圖像移除的 writer 可以返回 false,而不必對索引執行範圍檢查。

如果輸出為 null,則預設實作拋出 IllegalStateException,否則返回 false,而不必檢查 imageIndex 的值。

參數:
imageIndex - 要移除的圖像的索引。
返回:
如果能夠移除給定圖像,則返回 true
拋出:
IllegalStateException - 如果尚未設置輸出。
IndexOutOfBoundsException - 如果 writer 在一般情況下支持圖像移除,但 imageIndex 小於 0 或大於最大可用索引。
IOException - 如果在查詢期間發生 I/O 錯誤。

removeImage

public void removeImage(int imageIndex)
                 throws IOException
從串流中移除圖像。

如果 canRemoveImage(imageIndex) 返回 false,則將拋出 UnsupportedOperationException

移除可能導致實際檔案大小減小,也可能不會。

如果輸出為 null,則預設實作拋出 IllegalStateException,否則拋出 UnsupportedOperationException

參數:
imageIndex - 要移除的圖像的索引。
拋出:
IllegalStateException - 如果尚未設置輸出。
UnsupportedOperationException - 如果 canRemoveImage(imageIndex) 返回 false
IndexOutOfBoundsException - 如果 imageIndex 小於 0 或大於最大可用索引。
IOException - 如果在移除期間發生 I/O 錯誤。

canWriteEmpty

public boolean canWriteEmpty()
                      throws IOException
如果 writer 支持寫入由單個圖像組成的完整圖像串流,則返回 true,這些物件帶有要輸出的不確定像素值、有關元資料和縮略圖。像素值可通過以後調用 replacePixels 方法來確定。如果輸出是一個 ImageOutputStream,則位於當前尋找位置之前的現有內容不受影響,並且這些內容不必是可讀或可寫的。

如果輸出為 null,則預設實作拋出 IllegalStateException,否則返回 false

返回:
如果寫入內容以後再定義的完整圖像串流是受支持的,則返回 true
拋出:
IllegalStateException - 如果尚未設置輸出。
IOException - 如果在查詢期間發生 I/O 錯誤。

prepareWriteEmpty

public void prepareWriteEmpty(IIOMetadata streamMetadata,
                              ImageTypeSpecifier imageType,
                              int width,
                              int height,
                              IIOMetadata imageMetadata,
                              List<? extends BufferedImage> thumbnails,
                              ImageWriteParam param)
                       throws IOException
從寫入完整圖像串流開始,該圖像串流由帶有要輸出的不確定像素值、有關元資料和縮略圖的單個圖像組成。像素值可通過以後調用 replacePixels 方法來確定。如果輸出是一個 ImageOutputStream,則位於當前尋找位置之前的現有內容不受影響,並且這些內容不必是可讀或可寫的。

直到調用 endWriteEmpty 才完成寫入操作。調用 prepareReplacePixelsreplacePixelsendReplacePixels 可能發生在調用 prepareWriteEmptyendWriteEmpty 之間。不過,調用 prepareWriteEmpty 是不可巢狀的,調用 prepareWriteEmptyprepareInsertEmpty 不能被散置。

如果 canWriteEmpty 返回 false,則將拋出 UnsupportedOperationException

可以有選擇地提供 ImageWriteParam 來控制寫入過程。如果 paramnull,則將使用預設 write 參數。

如果所提供的 ImageWriteParam 套件含不受此 writer 支持的可選設置值(例如 逐步編碼或任何特定於格式的設置),則將忽略這些設置。

如果輸出為 null,則預設實作拋出 IllegalStateException,否則拋出 UnsupportedOperationException

參數:
streamMetadata - 表示串流元資料的 IIOMetadata 物件;或者為 null,表示使用預設值。
imageType - 描述圖像佈局的 ImageTypeSpecifier
width - 圖像的寬度。
height - 圖像的高度。
imageMetadata - 表示圖像元資料的 IIOMetadata 物件,或者為 null
thumbnails - 此圖像的 BufferedImage 縮略圖的 List,或者為 null
param - 一個 ImageWriteParam,或者為 null,表示使用預設 ImageWriteParam
拋出:
IllegalStateException - 如果尚未設置輸出。
UnsupportedOperationException - 如果 canWriteEmpty 返回 false
IllegalStateException - 如果以前已經調用 prepareWriteEmpty,但沒有相應地調用 endWriteEmpty
IllegalStateException - 如果以前已經調用 prepareInsertEmpty,但沒有相應地調用 endInsertEmpty
IllegalArgumentException - 如果 imageTypenull,或者 thumbnails 套件含 null 參考或物件,而不是 BufferedImage
IllegalArgumentException - 如果寬度或高度小於 1。
IOException - 如果在寫期間發生 I/O 錯誤。

endWriteEmpty

public void endWriteEmpty()
                   throws IOException
完成對新圖像的寫入,該操作是從優先調用 prepareWriteEmpty 開始的。

如果 canWriteEmpty() 返回 false,則將拋出 UnsupportedOperationException

如果輸出為 null,則預設實作拋出 IllegalStateException,否則拋出 UnsupportedOperationException

拋出:
IllegalStateException - 如果尚未設置輸出。
UnsupportedOperationException - 如果 canWriteEmpty(imageIndex) 返回 false
IllegalStateException - 如果以前已經調用 prepareWriteEmpty,但沒有相應地調用 endWriteEmpty
IllegalStateException - 如果以前已經調用 prepareInsertEmpty,但沒有相應地調用 endInsertEmpty
IllegalStateException - 如果以前已經調用 prepareReiplacePixels,但沒有相應地調用 endReplacePixels
IOException - 如果在寫入期間發生 I/O 錯誤。

canInsertEmpty

public boolean canInsertEmpty(int imageIndex)
                       throws IOException
如果 writer 支持在給定索引處插入新的空圖像,則返回 true。圖像的像素值是不確定的,並且可以使用 replacePixels 方法各個部分地指定它們。索引等於或大於插入索引的現有圖像會將其索引加 1。值為 -1imageIndex 可用於表示大於當前最大索引的索引。

不支持插入空圖像的 writer 可以返回 false,而不必對索引執行範圍檢查。

如果輸出為 null,則預設實作拋出 IllegalStateException,否則返回 false,而不必檢查 imageIndex 的值。

參數:
imageIndex - 將在其所在位置處插入圖像的索引。
返回:
如果可以在給定索引處插入空圖像,則返回 true
拋出:
IllegalStateException - 如果尚未設置輸出。
IndexOutOfBoundsException - 如果 writer 在一般情況下支持插入空圖像,但 imageIndex 小於 -1 或大於最大可用索引。
IOException - 如果在查詢期間發生 I/O 錯誤。

prepareInsertEmpty

public void prepareInsertEmpty(int imageIndex,
                               ImageTypeSpecifier imageType,
                               int width,
                               int height,
                               IIOMetadata imageMetadata,
                               List<? extends BufferedImage> thumbnails,
                               ImageWriteParam param)
                        throws IOException
從將帶有不確定像素值的新圖像插入現有圖像串流中開始。索引大於 imageIndex 的現有圖像被保留,其索引均被加 1。為 -1 的 imageIndex 值可用於表示大於以前最大索引的索引;也就是說,它將導致圖像按邏輯添加到序列的末尾。如果輸出是一個 ImageOutputStream,則整個串流都必須是可讀並且可寫的。

圖像內容可由稍後使用的 replacePixels 方法提供。直到調用 endInsertEmpty 才完成插入操作。調用 prepareReplacePixelsreplacePixelsendReplacePixels 可能發生在調用 prepareInsertEmptyendInsertEmpty 之間。不過,調用 prepareInsertEmpty 是不可巢狀的,調用 prepareWriteEmptyprepareInsertEmpty 不能被散置。

如果 canInsertEmpty(imageIndex) 返回 false,則將拋出 UnsupportedOperationException

可以有選擇地提供 ImageWriteParam 來控制寫入過程。如果 paramnull,則將使用預設 write 參數。

如果所提供的 ImageWriteParam 套件含不受此 writer 支持的可選設置值(例如 逐步編碼或任何特定於格式的設置),則將忽略這些設置。

如果輸出為 null,則預設實作拋出 IllegalStateException,否則拋出 UnsupportedOperationException

參數:
imageIndex - 將在其所在位置處寫入圖像的索引。
imageType - 描述圖像佈局的 ImageTypeSpecifier
width - 圖像的寬度。
height - 圖像的高度。
imageMetadata - 表示圖像元資料的 IIOMetadata 物件,或者為 null
thumbnails - 此圖像的 BufferedImage 縮略圖的 List,或者為 null
param - 一個 ImageWriteParam,或者為 null,表示使用預設 ImageWriteParam
拋出:
IllegalStateException - 如果尚未設置輸出。
UnsupportedOperationException - 如果 canInsertEmpty(imageIndex) 返回 false
IndexOutOfBoundsException - 如果 imageIndex 小於 -1 或大於最大可用索引。
IllegalStateException - 如果以前已經調用 prepareInsertEmpty,但沒有相應地調用 endInsertEmpty
IllegalStateException - 如果以前已經調用 prepareWriteEmpty,但沒有相應地調用 endWriteEmpty
IllegalArgumentException - 如果 imageTypenull,或者 thumbnails 套件含 null 參考或物件,而不是 BufferedImage
IllegalArgumentException - 如果寬度或高度小於 1。
IOException - 如果在寫期間發生 I/O 錯誤。

endInsertEmpty

public void endInsertEmpty()
                    throws IOException
完成對新圖像的插入,該操作是從以前調用 prepareInsertEmpty 開始的。

如果輸出為 null,則預設實作拋出 IllegalStateException,否則拋出 UnsupportedOperationException

拋出:
IllegalStateException - 如果尚未設置輸出。
UnsupportedOperationException - 如果 canInsertEmpty(imageIndex) 返回 false
IllegalStateException - 如果以前已經調用 prepareInsertEmpty,但沒有相應地調用 endInsertEmpty
IllegalStateException - 如果以前已經調用 prepareWriteEmpty,但沒有相應地調用 endWriteEmpty
IllegalStateException - 如果以前已經調用 prepareReplacePixels,但沒有相應地調用 endReplacePixels
IOException - 如果在寫入期間發生 I/O 錯誤。

canReplacePixels

public boolean canReplacePixels(int imageIndex)
                         throws IOException
如果 writer 允許使用 replacePixels 方法替換給定圖像的索引,則返回 true

不支持任何像素替換的 writer 可以返回 false,而不必對索引執行範圍檢查。

如果輸出為 null,則預設實作拋出 IllegalStateException,否則返回 false,而不必檢查 imageIndex 的值。

參數:
imageIndex - 其像素將被替換的圖像的索引。
返回:
如果可以替換給定圖像的像素,則返回 true
拋出:
IllegalStateException - 如果尚未設置輸出。
IndexOutOfBoundsException - 如果 writer 在一般情況下支持像素替換,但 imageIndex 小於 0 或大於最大可用索引。
IOException - 如果在查詢期間發生 I/O 錯誤。

prepareReplacePixels

public void prepareReplacePixels(int imageIndex,
                                 Rectangle region)
                          throws IOException
準備好 writer,處理一系列對 replacePixels 方法的調用。將根據所提供的資料來剪切受影響的像素區域。

如果 canReplacePixels 返回 false,則將拋出 UnsupportedOperationException

如果輸出為 null,則預設實作拋出 IllegalStateException,否則拋出 UnsupportedOperationException

參數:
imageIndex - 其像素將被替換的圖像的索引。
region - 將用來剪切將來的像素區域的 Rectangle
拋出:
IllegalStateException - 如果尚未設置輸出。
UnsupportedOperationException - 如果 canReplacePixels(imageIndex) 返回 false
IndexOutOfBoundsException - 如果 imageIndex 小於 0 或大於最大可用索引。
IllegalStateException - 如果以前調用了 prepareReplacePixels 但沒有相應地調用 endReplacePixels也就是說 不允許進行巢狀)。
IllegalArgumentException - 如果 regionnull 或者寬度或高度小於 1。
IOException - 如果在準備期間發生 I/O 錯誤。

replacePixels

public void replacePixels(RenderedImage image,
                          ImageWriteParam param)
                   throws IOException
用給定圖像部分替換已出現在輸出中的圖像部分。圖像資料必須比對,或者可轉化為現有圖像佈局。

目標區域是在 param 參數中指定的,並且將被剪切成圖像邊界和提供給 prepareReplacePixels 的區域。至少有一個源像素不能剪切,否則拋出一個異常。

可以有選擇地提供 ImageWriteParam 來控制寫入過程。如果 paramnull,則將使用預設 write 參數。

如果所提供的 ImageWriteParam 套件含不受此 writer 支持的可選設置值(例如 逐步編碼或任何特定於格式的設置),則將忽略這些設置。

此方法只能在調用 prepareReplacePixels 之後調用,否則將拋出 IllegalStateException

如果輸出為 null,則預設實作拋出 IllegalStateException,否則拋出 UnsupportedOperationException

參數:
image - 一個套件含源像素的 RenderedImage
param - 一個 ImageWriteParam,或者為 null,表示使用預設 ImageWriteParam
拋出:
IllegalStateException - 如果尚未設置輸出。
UnsupportedOperationException - 如果 canReplacePixels(imageIndex) 返回 false
IllegalStateException - 如果在以前調用 prepareReplacePixels 時沒有相應地調用 endReplacePixels
IllegalArgumentException - 如果以下任意一項為 true:
  • imagenull
  • paramnull
  • 相交區域並沒有包含至少一個像素。
  • image 的佈局與現有圖像佈局不比對,或者此 writer 無法將它轉換成現有圖像佈局。
IOException - 如果在寫入期間發生 I/O 錯誤。

replacePixels

public void replacePixels(Raster raster,
                          ImageWriteParam param)
                   throws IOException
用給定 Raster 部分替換已出現在輸出中的圖像部分。圖像資料必須比對,或者可轉化為現有圖像佈局。

可以有選擇地提供 ImageWriteParam 來控制寫入過程。如果 paramnull,則將使用預設 write 參數。

目標區域是在 param 參數中指定的,並且將被剪切成圖像邊界和提供給 prepareReplacePixels 的區域。至少有一個源像素不能剪切,否則拋出一個異常。

如果所提供的 ImageWriteParam 套件含不受此 writer 支持的可選設置值(例如 逐步編碼或任何特定於格式的設置),則將忽略這些設置。

此方法只能在調用 prepareReplacePixels 之後調用,否則將拋出 IllegalStateException

如果輸出為 null,則預設實作拋出 IllegalStateException,否則拋出 UnsupportedOperationException

參數:
raster - 一個套件含源像素的 Raster
param - 一個 ImageWriteParam,或者為 null,表示使用預設 ImageWriteParam
拋出:
IllegalStateException - 如果尚未設置輸出。
UnsupportedOperationException - 如果 canReplacePixels(imageIndex) 返回 false
IllegalStateException - 如果在以前調用 prepareReplacePixels 時沒有相應地調用 endReplacePixels
UnsupportedOperationException - 如果 canWriteRasters 返回 false
IllegalArgumentException - 如果以下任意一項為 true:
  • rasternull
  • paramnull
  • 相交區域並沒有包含至少一個像素。
  • raster 的佈局與現有圖像佈局不比對,或者此 writer 無法將它轉換成現有圖像佈局。
IOException - 如果在寫入期間發生 I/O 錯誤。

endReplacePixels

public void endReplacePixels()
                      throws IOException
終止調用 replacePixels 的序列。

如果 canReplacePixels 返回 false,則將拋出 UnsupportedOperationException

如果輸出為 null,則預設實作拋出 IllegalStateException,否則拋出 UnsupportedOperationException

拋出:
IllegalStateException - 如果尚未設置輸出。
UnsupportedOperationException - 如果 canReplacePixels(imageIndex) 返回 false
IllegalStateException - 如果在以前調用 prepareReplacePixels 時沒有相應地調用 endReplacePixels
IOException - 如果在寫入期間發生 I/O 錯誤。

abort

public void abort()
請求中止任何當前寫入操作。將中止的輸出的內容是不確定的。

weader 應該在開始每個寫入操作時調用 clearAbortRequest,並在寫入期間定期輪詢 abortRequested 的值。


abortRequested

protected boolean abortRequested()
如果自從 writer 被實例化或 clearAbortRequest 被調用開始,已經發出中止當前寫入操作的請求,則返回 true

返回:
如果應該中止當前寫入操作,則返回 true
另請參見:
abort(), clearAbortRequest()

clearAbortRequest

protected void clearAbortRequest()
清除任何以前的中止請求。在已調用此方法之後,abortRequested 將返回 false

另請參見:
abort(), abortRequested()

addIIOWriteWarningListener

public void addIIOWriteWarningListener(IIOWriteWarningListener listener)
IIOWriteWarningListener 添加到已註冊的警告偵聽器的列表中。如果 listenernull,則不會拋出異常並且不執行操作。發送到給定偵聽器的訊息將被初始化,如果有可能,會將該訊息與當前 Locale 比對。如果沒有設置 Locale,則可將警告訊息初始化為 writer 認為合適的形式。

參數:
listener - 要註冊的 IIOWriteWarningListener
另請參見:
removeIIOWriteWarningListener(javax.imageio.event.IIOWriteWarningListener)

removeIIOWriteWarningListener

public void removeIIOWriteWarningListener(IIOWriteWarningListener listener)
從已註冊的警告偵聽器列表中移除 IIOWriteWarningListener。如果以前沒有註冊偵聽器,或者 listenernull,則不會拋出異常並且不執行操作。

參數:
listener - 要取消註冊的 IIOWriteWarningListener
另請參見:
addIIOWriteWarningListener(javax.imageio.event.IIOWriteWarningListener)

removeAllIIOWriteWarningListeners

public void removeAllIIOWriteWarningListeners()
移除所有當前已註冊的 IIOWriteWarningListener 物件。

預設實作將 warningListenerswarningLocales 實例變數設置為 null


addIIOWriteProgressListener

public void addIIOWriteProgressListener(IIOWriteProgressListener listener)
IIOWriteProgressListener 添加到已註冊的進度偵聽器列表中。如果 listenernull,則不會拋出異常並且不執行操作。

參數:
listener - 要註冊的 IIOWriteProgressListener
另請參見:
removeIIOWriteProgressListener(javax.imageio.event.IIOWriteProgressListener)

removeIIOWriteProgressListener

public void removeIIOWriteProgressListener(IIOWriteProgressListener listener)
從已註冊的進度偵聽器列表中移除 IIOWriteProgressListener。如果以前沒有註冊偵聽器,或者 listenernull,則不會拋出異常並且不執行操作。

參數:
listener - 要取消註冊的 IIOWriteProgressListener
另請參見:
addIIOWriteProgressListener(javax.imageio.event.IIOWriteProgressListener)

removeAllIIOWriteProgressListeners

public void removeAllIIOWriteProgressListeners()
移除所有當前已註冊的 IIOWriteProgressListener 物件。

預設實作將 progressListeners 實例變數設置為 null


processImageStarted

protected void processImageStarted(int imageIndex)
通過調用 imageStarted 方法向所有已註冊 IIOWriteProgressListener 廣播開始寫入圖像的起始處。子類別可以將此方法用作一個便捷方法。

參數:
imageIndex - 即將寫入的圖像的索引。

processImageProgress

protected void processImageProgress(float percentageDone)
通過調用 imageProgress 方法向所有已註冊 IIOWriteProgressListener 廣播圖像完成的當前百分比。子類別可以將此方法用作一個便捷方法。

參數:
percentageDone - float 值形式的當前完整的百分比。

processImageComplete

protected void processImageComplete()
通過調用 imageComplete 方法向所有已註冊 IIOWriteProgressListener 廣播圖像寫入的完成。子類別可以將此方法用作一個便捷方法。


processThumbnailStarted

protected void processThumbnailStarted(int imageIndex,
                                       int thumbnailIndex)
通過調用 thumbnailStarted 方法向所有已註冊 IIOWriteProgressListener 廣播縮略圖寫入的起始處。子類別可以將此方法用作一個便捷方法。

參數:
imageIndex - 與該縮略圖有關的圖像的索引。
thumbnailIndex - 縮略圖的索引。

processThumbnailProgress

protected void processThumbnailProgress(float percentageDone)
通過調用 thumbnailProgress 方法向所有已註冊 IIOWriteProgressListener 廣播縮略圖完成的當前百分比。子類別可以將此方法用作一個便捷方法。

參數:
percentageDone - float 值形式的當前完整的百分比。

processThumbnailComplete

protected void processThumbnailComplete()
通過調用 thumbnailComplete 方法向所有已註冊 IIOWriteProgressListener 廣播縮略圖寫入的完成。子類別可以將此方法用作一個便捷方法。


processWriteAborted

protected void processWriteAborted()
通過調用 readAborted 方法向對所有已註冊 IIOWriteProgressListener 廣播寫入已經中止。子類別可以將此方法用作一個便捷方法。


processWarningOccurred

protected void processWarningOccurred(int imageIndex,
                                      String warning)
通過調用 warningOccurred 方法向所有已註冊 IIOWriteWarningListener 廣播一條警告訊息。子類別可以將此方法用作一個便捷方法。

參數:
imageIndex - 與發生的警告有關的圖像的索引。
warning - 警告訊息。
拋出:
IllegalArgumentException - 如果 warningnull

processWarningOccurred

protected void processWarningOccurred(int imageIndex,
                                      String baseName,
                                      String keyword)
通過使用取自 ResourceBundle 的字元串調用 warningOccurred 方法來向所有已註冊 IIOWriteWarningListener 廣播一條本地化警告訊息。子類別可以將此方法用作一個便捷方法。

參數:
imageIndex - 與發生的警告有關的圖像的索引。
baseName - 一組包含本地化警告訊息的 ResourceBundle 的基本名稱。
keyword - 用來為 ResourceBundle 集合中的警告訊息建立索引的關鍵字。
拋出:
IllegalArgumentException - 如果 baseNamenull
IllegalArgumentException - 如果 keywordnull
IllegalArgumentException - 如果無法找到合適的 ResourceBundle
IllegalArgumentException - 如果在定位的 ResourceBundle 中無法找到指定的資源。
IllegalArgumentException - 如果從 ResourceBundle 中獲取的物件不是一個 String

reset

public void reset()
ImageWriter 恢復到其初始狀態。

預設實作調用 setOutput(null)setLocale(null)removeAllIIOWriteWarningListeners()removeAllIIOWriteProgressListeners()clearAbortRequest


dispose

public void dispose()
允許釋放此物件保存的所有資源。調用其他任何方法(而不是 finalize)以及對此方法的後續調用的結果都是不確定的。

對應用程序而言,在知道它們不再使用此 ImageWriter 時,調用此方法非常重要。否則,writer 可能繼續無限期地保存這些資源。

在父級類別中,此方法的預設實作不執行任何操作。子類別實作應該確保所有資源(特別是本機資源)被釋放。


JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only