UIImage與CGImage的相關知識點總結

                                          第一部分 UIImage支持的圖片格式
windows


      格式                                         後綴數組

  JPEG格式                                      .jpg  .jpeg緩存

  GIF格式                                        .gif網絡

  PNG格式                                       .pngoop

  windos位圖格式                             .bmp  .BMPf動畫

  windows圖標格式                           .icourl

  windows光標格式                           .curspa

  標籤圖像文件格式                            .tiff .tif 3d


UIIMage經常使用來顯示圖片的類方法以下:指針

一  從 main bundle 加載指定文件名對應的圖片,可是這個方法有緩存,當試圖去加載的文件不存在的時候,他纔會去加載圖片文件並緩存它,若是已經緩存,則直接使用已緩存好的圖片

+ (UIImage *)imageNamed:(NSString *)name;   

二  這個方法根據指定的路徑中去加載文件對應的圖片

+ (UIImage *)imageWithContentsOfFile:(NSString *)path;


三  根據NSData中的圖片數據來加載對應的圖片

+ (UIImage *)imageWithData:(NSData *)data;


四 該方法根據NSData中的圖片數據來加載對應的圖片,而且會按照指定的縮放因子對圖片進行縮放

+ (UIImage *)imageWithData:(NSData *)data scale:(CGFloat)scale NS_AVAILABLE_IOS(6_0);


五  根據指定的CGImageRef對象來建立UIImage

+ (UIImage *)imageWithCGImage:(CGImageRef)cgImage;

 

六  根據指定的CGImageRef對象來建立UIImage,而且會按照指定的縮放因子對圖片進行縮放和旋轉

+ (UIImage *)imageWithCGImage:(CGImageRef)cgImage scale:(CGFloat)scale orientation:(UIImageOrientation)orientation NS_AVAILABLE_IOS(4_0);

  

                         第二部分 加載圖片的方式



一 從bundle中加載對應的圖片


UIImage* image=[UIImage imageNamed:@"1.png"];


二 從網絡加載圖片


NSURL* url    =[NSURL URLWithString:@"1131907198420455d6o.jpg"];

NSData* data  =[NSData dataWithContentsOfURL:url];

UIImage* image=[UIImage imageNamed:data];


三 從手機上加載圖片


NSString* path=[[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComopnoent:@"baidu.png"];

UIImage* image=[UIIMage imageWithContentsOfFile: path];


四 加載多張圖片實現動畫的效果


該方法根據指定的圖片名來加載系列圖片

// animated images. When set as UIImageView.image, animation will play in an infinite loop until removed. Drawing will render the first image


+ (UIImage *)animatedImageNamed:(NSString *)name duration:(NSTimeInterval)duration NS_AVAILABLE_IOS(5_0);  // read sequence of files with suffix starting at 0 or 1


該方法要求傳入一個數組,做爲多張動畫圖片,數組中的每一個元素都是UIImage對象

+ (UIImage *)animatedImageWithImages:(NSArray *)images duration:(NSTimeInterval)duration NS_AVAILABLE_IOS(5_0);


                        第三部分 UIIMage與CGImage的關係


UIImage的缺點:不能對圖片進行縮放,旋轉,不能挖取原圖片的指定區域。須要藉助CGImageRef來實現、


CGImageRef不是面向對象的API,而是一個指針類型


UIImage與CGImageRef相互轉換


一 將image裝換成CGImageRef


UIImage* image=.......

CGImageRef imageRef=[image CGImage];


二 將CGImageref轉換成UIImage


CGIMageRef ref=....

UIImage* image=[UIImage imageWithCGImage:ref];

相關文章
相關標籤/搜索