Comment utiliser CGImageCreateWithImageInRect pour l'iPhone 4 (HD)?
J'utilise le code suivant pour obtenir des images à partir de l'image-objet. Et il fonctionne très bien partout à l'exception de l'iPhone 4 (version HD).
- (UIImage *)croppedImage:(CGRect)rect {
CGImageRef image = CGImageCreateWithImageInRect([self CGImage], rect);
UIImage *result = [UIImage imageWithCGImage:image];
CGImageRelease(image);
return result;
}
L'iPhone 4 automatiquement charger la version HD de l'image ([email protected]) au lieu de sprite.png. L'image originale a une échelle 2, mais l'image qui en résulte a une échelle de 1 et de bonne taille.
La façon de gérer ce problème en prenant en compte les différentes échelles pour iPhone 3G[s] et l'iPhone 4?
J'ai lu ce document, mais sur l'utilisation CGImageCreateWithImageInRect ici ne dit rien.
- Je serais très intéressé si vous pouviez regarder ma réponse. Je suis sûr qu'il ya une meilleure façon d'atteindre ce que nous voulons. Mais la bonne réponse ici me semble pas au point. Pourriez-vous utiliser le code ci-dessus + le rect traduction avec échelle et voir si cela fonctionne?
Vous devez vous connecter pour publier un commentaire.
De ce que je peux dire à la CGImageCreateWithImageInRect va faire la bonne chose. Ce que vous avez besoin de changer la UIImage initilization
http://developer.apple.com/iphone/library/documentation/uikit/reference/UIImage_Class/Reference/Reference.html#//apple_ref/occ/clm/UIImage/imageWithCGImage:scale:orientation:
Changer de
[UIImage imageWithCGImage:image scale:self.scale orientation:self. imageOrientation]
et il devrait fonctionner très bien. (c'est en supposant que c'est une catégorie sur UIImage qu'elle regarde comme elle est)Vous devez multiplier la culture rect par l'échelle de l'image. De mon expérience, il n'est pas nécessaire d'utiliser toute image différente initilization.