Return to the Alphabetic Index
Return to the Class Browser
Return to the Picture Browser
Copyright (c) 1994 by NeXT Computer, Inc.  All Rights
Reserved.
NSBitmapImageRep
Inherits From: NSImageRep : NSObject
Conforms To:	NSCoding, NSCopying (NSImageRep)
NSObject (NSObject)
Declared In:	AppKit/NSBitmapImageRep.h 
Class Description
An NSBitmapImageRep is an object that can render an image from bitmap data.
The data can be in Tag Image File Format (TIFF), or it can be raw image data.
If it's raw data, the object must be informed about the structure of the
imageits size, the number of color components, the number of bits per
sample, and so onwhen it's first initialized. If it's TIFF data, the
object can get this information from the various TIFF fields included with the
data.
Although NSBitmapImageReps are often used indirectly, through instances of the
NSImage class, they can also be used directlyfor example to manipulate
the bits of an image as you might need to do in a paint program.
Setting Up an NSBitmapImageRep
A new NSBitmapImageRep is passed bitmap data for an image when it's first
initialized. An NSBitmapImageRep can also be created from bitmap data that's
read from a specified rectangle of a focused NSView.
Although the NSBitmapImageRep class inherits NSImageRep methods that set image
attributes, these methods shouldn't be used. Instead, you should either allow
the object to find out about the image from the TIFF fields or use methods
defined in this class to supply this information when the object is
initialized.
TIFF Compression
TIFF data can be read and rendered after it has been compressed using any one
of the four schemes briefly described below:
LZW	Compresses and decompresses without information loss, achieving compression
ratios up to 5:1. It may be somewhat slower to compress and decompress than the
PackBits scheme.
PackBits	Compresses and decompresses without information loss, but may not
achieve the same compression ratios as LZW.
JPEG	Compresses and decompresses with some information loss, but can achieve
compression ratios anywhere from 10:1 to 100:1. The ratio is determined by a
user-settable factor ranging from 1.0 to 255.0, with higher factors yielding
greater compression. More information is lost with greater compression, but
15:1 compression is safe for publication quality. Some images can be compressed
even more. JPEG compression can be used only for images that specify at least 4
bits per sample.
CCITTFAX	Compresses and decompresses 1 bit grayscale images using international
fax compression standards CCITT3 and CCITT4.
An NSBitmapImageRep can also produce compressed TIFF data for its image using
any of these schemes.
Allocating and Initializing a New NSBitmapImageRep Object 
-  + (id)imageRepWithData:(NSData *)tiffData	Creates and returns an
initialized NSBitmapImageRep corresponding to the first image in
tiffData.
-  +  (NSArray *)imageRepsWithData:(NSData *)tiffData
	Creates and returns initialized NSBitmapImageRep objects for all the
images in tiffData.
-  -  (id)initWithData:(NSData *)tiffData	Initializes a newly
allocated NSBitmapImageRep from the first TIFF header and image data found in
tiffData. 
-  -  (id)initWithFocusedViewRect:(NSRect)rect	Initializes the new
object using data read from the image contained in the rectangle rect.
-  -  (id)initWithBitmapDataPlanes:(unsigned char **)planes
pixelsWide:(int)width	Initializes the new object from raw
bitmap data in the
pixelsHigh:(int)height		planes data buffers. As the data
is raw, the other
bitsPerSample:(int)bps		arguments specify its attributes.
samplesPerPixel:(int)spp
hasAlpha:(BOOL)alpha
isPlanar:(BOOL)config
colorSpaceName:(NSString *)colorSpaceName
bytesPerRow:(int)rowBytes
bitsPerPixel:(int)pixelBits
Getting Information about the Image 
-  -  (int)bitsPerPixel	Returns how many bits are needed to specify one
pixel. 
-  -  (int)samplesPerPixel	Returns the number of samples (components) in the
data. 
-  -  (BOOL)isPlanar	Returns YES if in planar configuration, NO if meshed.
-  -  (int)numberOfPlanes	Returns the number of data planes. 
-  -  (int)bytesPerPlane	Returns the number of bytes in each data plane. 
-  -  (int)bytesPerRow	Returns the number of bytes in a scan line. 
Getting Image Data
-  - (unsigned char *)bitmapData	Returns a pointer to the bitmap data. If
the data is planar, returns a pointer to the first plane.
-  -  (void)getBitmapDataPlanes:(unsigned char **)data
	Provides pointers to each plane of bitmap data.
Producing a TIFF Representation of the Image
-  + (NSData *)TIFFRepresentationOfImageRepsInArray:(NSArray
*)anArray
	Returns a TIFF representation of the images in the specified NSArray,
using the compression that's returned by getCompression:factor: (if
applicable).
-  +  (NSData *)TIFFRepresentationOfImageRepsInArray:(NSArray
*)anArray
usingCompression:(NSTIFFCompression)compressionType
factor:(float)factor	Returns a TIFF representation of the
images in the specified NSArray, which are compressed using
compressionType and factor. If the specified compression isn't
applicable, no compression is used.
-  -  (NSData *)TIFFRepresentation	Returns a TIFF representation of the
image, using the compression that's returned by getCompression:factor:
(if applicable).
-  -  (NSData
*)TIFFRepresentationUsingCompression:(NSTIFFCompression)compressionTyp
 factor:(float)factor	Returns a compressed TIFF
representation of the image, having the specified compression type and
compression factor. If the specified compression isn't applicable, no
compression is used. Raises NSTIFFException if an atempt is made to create a
TIFF representation using OpenStep custom color space bitmaps.
Setting and Checking Compression Types
-  + (void)getTIFFCompressionTypes:(const NSTIFFCompression **)list
count:(int *)numTypes	Returns all available compression types. 
-  +  (NSString
*)localizedNameForTIFFCompressionType:(NSTIFFCompression)compression>
	Returns the localized name for the compression type. 
-  -  (BOOL)canBeCompressedUsing:(NSTIFFCompression)compression
	Returns YES if the image can be compressed using the specified type of
compression. 
-  -  (void)getCompression:(NSTIFFCompression *)compression	 
factor:(float *)factor	Returns, in its arguments, the compression
type and compression factor. 
-  -  (void)setCompression:(NSTIFFCompression)compression	 
factor:(float)factor	Sets the compression type and compression
factor.