diff options
Diffstat (limited to 'image/imgITools.idl')
-rw-r--r-- | image/imgITools.idl | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/image/imgITools.idl b/image/imgITools.idl new file mode 100644 index 0000000000..111efa07c1 --- /dev/null +++ b/image/imgITools.idl @@ -0,0 +1,152 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "nsISupports.idl" + +interface nsIInputStream; +interface imgIContainer; +interface imgILoader; +interface imgICache; +interface nsIDOMDocument; +interface imgIScriptedNotificationObserver; +interface imgINotificationObserver; + +[scriptable, builtinclass, uuid(4c2383a4-931c-484d-8c4a-973590f66e3f)] +interface imgITools : nsISupports +{ + /** + * decodeImage + * Caller provides an input stream and mimetype. We read from the stream + * and decompress it (according to the specified mime type) and return + * the resulting imgIContainer. + * + * @param aStream + * An input stream for an encoded image file. + * @param aMimeType + * Type of image in the stream. + */ + imgIContainer decodeImage(in nsIInputStream aStream, + in ACString aMimeType); + + /** + * decodeImageData + * Caller provides an input stream and mimetype. We read from the stream + * and decompress it (according to the specified mime type) and return + * the resulting imgIContainer. + * + * This method is deprecated and will be removed at some time in the future; + * new code should use |decodeImage|. + * + * @param aStream + * An input stream for an encoded image file. + * @param aMimeType + * Type of image in the stream. + * @param aContainer + * An imgIContainer holding the decoded image will be returned via + * this parameter. It is an error to provide any initial value but + * |null|. + */ + [deprecated] void decodeImageData(in nsIInputStream aStream, + in ACString aMimeType, + inout imgIContainer aContainer); + + /** + * encodeImage + * Caller provides an image container, and the mime type it should be + * encoded to. We return an input stream for the encoded image data. + * + * @param aContainer + * An image container. + * @param aMimeType + * Type of encoded image desired (eg "image/png"). + * @param outputOptions + * Encoder-specific output options. + */ + nsIInputStream encodeImage(in imgIContainer aContainer, + in ACString aMimeType, + [optional] in AString outputOptions); + + /** + * encodeScaledImage + * Caller provides an image container, and the mime type it should be + * encoded to. We return an input stream for the encoded image data. + * The encoded image is scaled to the specified dimensions. + * + * @param aContainer + * An image container. + * @param aMimeType + * Type of encoded image desired (eg "image/png"). + * @param aWidth, aHeight + * The size (in pixels) desired for the resulting image. Specify 0 to + * use the given image's width or height. Values must be >= 0. + * @param outputOptions + * Encoder-specific output options. + */ + nsIInputStream encodeScaledImage(in imgIContainer aContainer, + in ACString aMimeType, + in long aWidth, + in long aHeight, + [optional] in AString outputOptions); + + /** + * getImgLoaderForDocument + * Retrieve an image loader that reflects the privacy status of the given + * document. + * + * @param doc + * A document. Must not be null. + */ + imgILoader getImgLoaderForDocument(in nsIDOMDocument doc); + + /** + * getImgLoaderForDocument + * Retrieve an image cache that reflects the privacy status of the given + * document. + * + * @param doc + * A document. Null is allowed, but must _only_ be passed + * when there is no way to obtain a relevant document for + * the current context in which a cache is desired. + */ + imgICache getImgCacheForDocument(in nsIDOMDocument doc); + + /** + * encodeCroppedImage + * Caller provides an image container, and the mime type it should be + * encoded to. We return an input stream for the encoded image data. + * The encoded image is cropped to the specified dimensions. + * + * The given offset and size must not exceed the image bounds. + * + * @param aContainer + * An image container. + * @param aMimeType + * Type of encoded image desired (eg "image/png"). + * @param aOffsetX, aOffsetY + * The crop offset (in pixels). Values must be >= 0. + * @param aWidth, aHeight + * The size (in pixels) desired for the resulting image. Specify 0 to + * use the given image's width or height. Values must be >= 0. + * @param outputOptions + * Encoder-specific output options. + */ + nsIInputStream encodeCroppedImage(in imgIContainer aContainer, + in ACString aMimeType, + in long aOffsetX, + in long aOffsetY, + in long aWidth, + in long aHeight, + [optional] in AString outputOptions); + + /** + * Create a wrapper around a scripted notification observer (ordinarily + * imgINotificationObserver cannot be implemented from scripts). + * + * @param aObserver The scripted observer to wrap + */ + imgINotificationObserver + createScriptedObserver(in imgIScriptedNotificationObserver aObserver); +}; |