UIImageView's scale automatically so just setting the frame of the UIImageView containing the UIImage to ( x, y, 44, 44 ), possibly after you load the image into it, will just work whatever size the image actually is on whatever type of display you are using.
On Mar 27, 2012, at 3:38 PM, Ray wrote: > OK, so I have this iOS 3.x code base that I need to update. I have the > following code, to make a thumbnail image: > > ... > // let's say we have a UIImage *selectedImage with a size of 1000 x 1000 > UIImage *newImage; > NSData *imageData; > > UIGraphicsBeginImageContext(CGSizeMake(44.0, 44.0)); > [selectedImage drawInRect:CGRectMake(0.0, 0.0, 44.0, 44.0)]; > newImage = UIGraphicsGetImageFromCurrentImageContext(); > UIGraphicsEndImageContext(); > > imageData = UIImagePNGRepresentation(newImage); > ... > > Code is simplified, just for illustrative purposes. I store imageData as a > binary property (called "listImage") in a Core Data entity and use it as a > thumbnail image in a UITableView, like so: > > cell.imageView.image = [UIImage imageWithData:item.listImage]; > > It's small, so no problems. On both a normal and retina screen iPhone running > iOS 4 this works OK, although we don't make use of the increased resolution, > yet. In order to do that, I update the code with: > > UIGraphicsBeginImageContextWithOptions(CGSizeMake(44.0, 44.0), YES, 0); > > Now, when I generate a new image on an iPhone with a retina screen, in which > case the above UIGraphicsBeginImageContextWithOptions uses a scale of 2.0, > the image in the table view shows too big. This is because [UIImage > imageWithData:item.listImage] always returns a 1.0 scaled image. Now I can > solve this by using something like: > > UIImage *theImage = [UIImage imageWithData:listImage]; > [UIImage imageWithCGImage:theImage.CGImage scale:theImage.size.width > 44.0 ? > 2.0 : 1.0 orientation:theImage.imageOrientation]; > > But this seems kludgy and it's using programmer's knowledge, so to speak. I > watched WWDC2010 session 134 "Optimize your iPhone App for the Retina > Display" again, searched stackoverflow etc. but I can't find a more elegant > solution. What would be a more thorough approach? Maybe it's staring me in > the face but I don't see it... > > Thanks for your answers, > - Ray. > > > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/cocoa-dev/rols%40rols.org > > This email sent to r...@rols.org _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com