7
votes

Simple redimensionnement de l'uiimage en xcode

Y a-t-il une façon de redimensionner l'uImage dans le moins de lignes que possible? Cela ne me dérange pas du ratio, je veux juste définir la résolution de l'image à 80x60. C'est tout


0 commentaires

4 Réponses :


15
votes

Ceci peut être surchargé, mais vous pouvez simplement prendre votre image et créer un contexte graphique à cette résolution souhaitée, vous pouvez définir le tempimage comme UiImageView, écraser-le. xxx


2 commentaires

Vous avez dit que vous vouliez quelques lignes. Ceci est comme 10, lol. Aucun effet négatif cependant!


Parce que l'image n'est que 80x60, c'est vraiment petit. Si vous voulez que ce soit une résolution plus élevée, vous l'ajustez dans la troisième ligne de code.



1
votes

Utilisez cette classe (ajouter du code à .h fichier en conséquence) xxx


0 commentaires

1
votes
- (void)resizeImage:(UIImage *)image
{
   CGSize origImageSize = [image size];
   CGRect imageRect = CGRectMake(0, 0, 80, 60);
   float ratio = MAX(newRect.size.width / origImageSize.width,
                  newRect.size.height / origImageSize.height);
   UIGraphicsBeginImageContextWithOptions(newRect.size, NO, 0.0);
   UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:newRect
                                                cornerRadius:5.0];
   [path addClip];
   CGRect imageRect;
   imageRect.size.width = ratio * origImageSize.width;
   imageRect.size.height = ratio * origImageSize.height;
   imageRect.origin.x = (newRect.size.width - imageRect.size.width) / 2.0;
   imageRect.origin.y = (newRect.size.height - imageRect.size.height) / 2.0;
   [image drawInRect:imageRect];
   UIImage *smallImage = UIGraphicsGetImageFromCurrentImageContext();
   NSData *data = UIImagePNGRepresentation(smallImage);
   UIGraphicsEndImageContext();
}
Do not forget to add CoreGraphics frameawork.

0 commentaires