123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- /* -*- 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);
- };
|