NSBitmapImageRep is an image representation
for handling images composed of pixels. The standard image
format for NSBitmapImageRep is the TIFF format. However,
through the use of image filters and other methods,
many other standard image formats can be handled by
NSBitmapImageRep. Images are typically
handled through the NSImage class and there is often no
need to use the NSBitmapImageRep class directly. However
there may be cases where you want to manipulate the image
bitmap data directly.
Produces an NSData object containing a TIFF
representation of all the images stored in
anArray. BUGS: Currently this only works
if the images are NSBitmapImageRep objects.
Produces an NSData object containing a TIFF
representation of all the images stored in
anArray. The image is compressed according
to the compression type and factor
. BUGS: Currently this only works if the images are
NSBitmapImageRep objects.
Returns a newly allocated NSBitmapImageRep object
representing the image stored in
imageData. If the image data contains
more than one image, the first one is choosen.
Returns the number of bits need to contain one
pixels worth of data. This is normally the number of
samples per pixel times the number of bits in one
sample.
Files the array data with pointers to each
of the data planes representing the image.
The data array must be allocated to contain
at least
-samplesPerPixel
pointers.
Returns the receivers compression and
compressionfactor, which is
set either when the image is read in or by
-setCompression:factor:
. Factor is ignored in many compression
schemes. For JPEG compression,
factor can be any value from 0 to 1, with
1 being the maximum quality.
Initializes a newly created NSBitmapImageRep
object to hold image data specified in the
planes buffer and organized according to
the additional arguments passed into the method.
The planes argument is an array of
char pointers where each array
holds a single component or plane of data. Note
that if data is passed into the method via
planes, the data is NOT copied and not
freed when the object is deallocated. It is assumed
that the data will always be available. If
planes is NULL, then a suitable amount
of memory will be allocated to store the information
needed. One can then obtain a pointer to the
planes data using the
-bitmapData
or
-getBitmapDataPlanes:
method.
Each component of the data is in "standard" order,
such as red, green, blue for RGB color images. The
transparency component, if these is one,
should always be last.
The other arguments to the method consist of:
width and height
The width and height of the
image in pixels
bps
The bits per sample or the number of bits used to
store a number in one component of one pixel of
the image. Typically this is 8 (bits) but can be 2
or 4, although not all values are supported.
spp
Samples per pixel, or the number of components
of color in the pixel. For instance this would be 4
for an RGB image with transparency.
alpha
Set to YES if the image has a
transparency component.
isPlanar
Set to YES if the data is arranged in
planes, i.e. one component per buffer
as stored in the planes array. If
NO, then the image data is mixed in
one buffer. For instance, for RGB data, the first
sample would contain red, then next green, then
blue, followed by red for the next pixel.
colorSpaceName
This argument specifies how the data values are to
be interpreted. Possible values include the typical
colorspace names (although not all values
are currently supported)
rowBytes
Specifies the number of bytes contained in a
single scan line of the data. Normally this can
be computed from the width of the image,
the samples per pixel and the bits per sample.
However, if the data is aligned along word
boundaries, this value may differ from
this. If rowBytes is 0, the method
will calculate the value assuming there are no
extra bytes at the end of the scan line.
pixelBits
This is normally bps for planar data and bps times
spp for non-planar data, but sometimes images have
extra bits. If pixelBits is 0 it will
be calculated as described above.
Returns YES if the image components
are stored separately. Returns NO if the
components are meshed (i.e. all the samples for
one pixel come before the next pixel).
Returns a data object in one of the supported
bitmap graphics file types. A limited set of
options may be passed via the
properties. If the passed in
properties is nil, it falls
back to the options set with
-setProperty:withValue:
. File types not yet implemented return
nil and log an error message.
Properties are key-value pairs associated with
the representation. Arbitrary key-value pairs may be
set. If the value is nil,
the key is erased from properties. There are standard
keys that are used to pass information and options
related to the standard file types that may be
read from or written to. Certain properties are
automatically set when reading in image
data. Certain properties may be set by the user
prior to writing image data in order to set options
for the data format.
NSImageCompressionMethod
NSNumber; automatically set when reading TIFF
data; writing TIFF data
NSImageCompressionFactor
NSNumber 0.0 to 1.0; writing JPEG data
(GNUstep extension: JPEG-compressed TIFFs too)
NSImageProgressive
NSNumber boolean; automatically set when
reading JPEG data; writing JPEG data. Note:
progressive display is not supported in
GNUstep at this time.
NSImageInterlaced
NSNumber boolean; only for writing PNG data
NSImageGamma
NSNumber 0.0 to 1.0; only for reading or
writing PNG data
NSImageRGBColorTable
NSData; automatically set when reading GIF
data; writing GIF data
NSImageFrameCount
NSNumber integer; automatically set when
reading animated GIF data. Not currently
implemented.
NSImageCurrentFrame
NSNumber integer; only for animated GIF files.
Not currently implemented.
NSImageCurrentFrameDuration
NSNumber float; automatically
set when reading animated GIF data
NSImageLoopCount
NSNumber integer; automatically set when
reading animated GIF data
NSImageDitherTranparency
NSNumber boolean; only for writing GIF data.
Not currently supported.
Warning the underscore at the start of the
name of this instance variable indicates that, even
though it is not technically private, it is
intended for internal use within the package, and
you should not use the variable in other code.
Warning the underscore at the start of the
name of this instance variable indicates that, even
though it is not technically private, it is
intended for internal use within the package, and
you should not use the variable in other code.
Warning the underscore at the start of the
name of this instance variable indicates that, even
though it is not technically private, it is
intended for internal use within the package, and
you should not use the variable in other code.
Warning the underscore at the start of the
name of this instance variable indicates that, even
though it is not technically private, it is
intended for internal use within the package, and
you should not use the variable in other code.
Warning the underscore at the start of the
name of this instance variable indicates that, even
though it is not technically private, it is
intended for internal use within the package, and
you should not use the variable in other code.
Warning the underscore at the start of the
name of this instance variable indicates that, even
though it is not technically private, it is
intended for internal use within the package, and
you should not use the variable in other code.
Warning the underscore at the start of the
name of this instance variable indicates that, even
though it is not technically private, it is
intended for internal use within the package, and
you should not use the variable in other code.
Warning the underscore at the start of the
name of this instance variable indicates that, even
though it is not technically private, it is
intended for internal use within the package, and
you should not use the variable in other code.
Warning the underscore at the start of the
name of this instance variable indicates that, even
though it is not technically private, it is
intended for internal use within the package, and
you should not use the variable in other code.
Warning the underscore at the start of the
name of this instance variable indicates that, even
though it is not technically private, it is
intended for internal use within the package, and
you should not use the variable in other code.