Mozilla2:Image Encoding: Difference between revisions
Jump to navigation
Jump to search
Line 7: | Line 7: | ||
{ | { | ||
/* input image data | /* input image data | ||
* result width | * result width | ||
* result height | * result height | ||
*/ | */ | ||
nsIInputStream encode(in imgIContainer input, in unsigned long width, in unsigned long height); | |||
/* type of scaling */ | /* type of scaling */ |
Revision as of 02:32, 8 March 2005
Interface
We need to add a new interface. When you read from the stream should we encode just that much? Thoughts?
Something like:
interface imgIEncoder : nsISupports { /* input image data * result width * result height */ nsIInputStream encode(in imgIContainer input, in unsigned long width, in unsigned long height); /* type of scaling */ const unsigned long SCALE_BAD = 0; const unsigned long SCALE_NORMAL = 1; const unsigned long SCALE_GOOD = 2; attribute unsigned long scaling; };
encode() method
Should we put width/height on the encode method?
Scaling
Do we want to support different types of scaling? I'm thinking we may not and may just want a solid good scaling algorithm that all encoders can use.
I'd like to do some nice Bicubic resampling. [1] [2]
Brendan's comments
A reader should get the bytes requested, if not greater than length of encoded image, and it's up to the encoder to buffer more if it encodes more bytes, reading from the buffer on next read.
Use
You would create one by doing:
createInstance("@mozilla.org/image/encoder;2?type=image/png");