Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/extensions/Variables/includes/ExtVariables.php on line 198
UIImage - iPhone Development Wiki

UIImage

From iPhone Development Wiki
Revision as of 17:49, 3 February 2010 by KennyTM~ (talk | contribs) (lol. →‎UIGetScreenImage)

UIImage is an Objective-C class that represents a bitmap image.

Undocumented methods

-_applicationIconImagePrecomposed: & -_smallApplicationIconImagePrecomposed:

From left to right: The original image; _applicationIconImagePrecomposed:NO; _applicationIconImagePrecomposed:YES; _smallApplicationIconImagePrecomposed:NO; _smallApplicationIconImagePrecomposed:YES
Signature -(UIImage*)_applicationIconImagePrecomposed:(BOOL)precomposed;
Available in 2.0 –
Signature -(UIImage*)_smallApplicationIconImagePrecomposed:(BOOL)precomposed;
Available in 2.0 – 3.1

These methods resize an image to icon size (59×59) or small icon size (29×29), clip out a rounded rectangle, draw shadows and apply a glossy overlay if required (when precomposed == NO), so that it resembles an icon.

If the input image is rectangular, the largest square portion in the top-left corner will be used.

Example:

@interface UIImage (privateAPI)
-(UIImage*)_applicationIconImagePrecomposed:(BOOL)precomposed;
@end
...
UIImage *regularIcon = [UIImage imageNamed:@"regularIcon.png"];
UIImage *renderedIcon = [regularIcon _applicationIconImagePrecomposed:NO];
NSData  *pngData = UIImagePNGRepresentation( renderedIcon );
[pngData writeToFile:@"/tmp/roundedIcon.png" atomically:YES];

_flatImageWithWhite:alpha:

Signature -(UIImage*)_flatImageWithWhite:(CGFloat)white alpha:(CGFloat)alpha;
Available in 2.0 –

Create an image having the same size as the original image, but filled with the solid color as the parameters.

_bezeledImageWithRed:green:blue:alpha:

Signature -(UIImage*) _bezeledImageWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha;
Available in 2.0 –

Create a solid white image having the same size as the original image, and then stroke the top 1px edge by the specified color.

_imageScaledToSize:interpolationQuality: & _imageScaledToProportion:interpolationQuality:

Signature -(UIImage*)_imageScaledToSize:(CGSize)newSize interpolationQuality:(CGInterpolationQuality)quality;
Available in 2.0 –
Signature -(UIImage*)_imageScaledToProportion:(CGFloat)scale interpolationQuality:(CGInterpolationQuality)quality;
Available in 2.0 –

Rescale the image to the new size.

+kitImageNamed:

Signature +(UIImage*)kitImageNamed:(NSString*)name;
Available in 2.0 –

Equivalent to _UIImageWithName(name).

+defaultDesktopImage

Signature +(UIImage*)defaultDesktopImage;
Available in 2.0 –

Return the user's lock screen image.

+setDesktopImageData:

Signature +(void)setDesktopImageData:(NSData*)jpegData;
Available in 2.0 –

Replace the user's lock screen image by the given JPEG data.

Undocumented C functions

_UIImageWithName

Signature UIImage* _UIImageWithName(NSString* name);
Available in 2.0 –

Obtain a built-in image. The name are stored in UIKit.framework/*.artwork. There are various ways to extract this information[1][2][3], and you can grab a (slightly outdated) list from http://test.saurik.com/winterboard/UIImages.txt.

UIImageDataWriteToSavedPhotosAlbum

Signature void UIImageDataWriteToSavedPhotosAlbum(NSData* imageData, id target, SEL selector, void* context);
Available in 3.1 –

Write the image data to photos album. This is similar to UIImageWriteToSavedPhotosAlbum function in the SDK, except that you can choose the image format (the extension will always be *.jpg, however).

UIGetScreenImage

Signature CGImageRef UIGetScreenImage();
Available in 2.0 –
Signature CGImageRef UICreateScreenImage();
Available in 3.2 –

"Print screen" and returns the image. Note that this is a CGImage, so you need to convert it to a UIImage with +[UIImage imageWithCGImage:].

Note that, although being a "Get" function, the returned image actually has retain count of +1, and the caller (you) are responsible to CGImageRelease it.

Starting from 2009 Dec 14th, this function can be used for SDK apps[4].

In firmware 3.2, UIGetScreenImage becomes an alias of the more appropriately-named UICreateScreenImage.

References