3

UIImageViewに元の画像の一部のみを表示するにはどうすればよいですか?

この質問は非常に馴染みがあり古いものかもしれませんが、もう一度質問する理由は、これらの回答の助けを借りて実行可能なアイデアを見つけることができなかったためです。多くの人がset image.contentMode = UIViewContentModeCenter; (ただし、機能していません)

元の画像の中心を含むほぼ長方形が必要ですが、これを取得するにはどうすればよいですか?

アプリに静止画像を表示し、UIImageVieのコンテンツモードをアスペクトフィルとして設定しているときに、これを機能させます。しかし、URLから画像を表示し、NSDataを使用している場合、これは機能しません。

コードと画像を追加する

   NSString *weburl = @"http://topnews.in/files/Sachin-Tendulkar_15.jpg";
   UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 50, 108, 86)];
   NSURL *url = [NSURL URLWithString:weburl];
   NSData *data = [NSData dataWithContentsOfURL:url];
   imageView.image = [UIImage imageWithData:data];

   [self.view addSubview:imageView];

元の画像 現在の出力 必要

4

4 に答える 4

8

UIImageView フォーム XIB を追加した場合は、そこに「モード」プロパティがあり、そこからさまざまなモードを表示および設定できます (Interface builder から)。または、プログラムによって、次の方法でさまざまなモードを設定できます

imageView.contentMode = UIViewContentModeCenter;
imageView.clipsToBounds = YES;
于 2012-11-27T06:16:52.097 に答える
5

これを試して:

self.imageView.layer.contentsRect = CGRectMake(0.25, 0.25, 0.5, 0.5);

self.imageView は画像の中央部分を表示します。CGRect の必要な値を自分で計算できます</p>

于 2012-11-27T09:57:58.767 に答える
3

この種の出力では、必要に応じて画像をトリミングする必要があります。

使用できる以下のコードをトリミングします。

-(UIImage *) CropImageFromTop:(UIImage *)image
{
    CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], CGRectMake(0, 12, image.size.width, image.size.height - 12));
    UIImage *cropimage = [[[UIImage alloc] initWithCGImage:imageRef] autorelease];
    CGImageRelease(imageRef);
    return cropimage;
}
于 2012-11-27T05:59:00.507 に答える
-1

画像をスケーリングしてから UiImageView に画像を追加し、その画像を中央に設定すると、画像が中央になります。スケール画像のコードは

-(UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize{
   UIGraphicsBeginImageContext(newSize);
   [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
   UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
   UIGraphicsEndImageContext();
   return newImage;

}

次に、その画像の中心を設定し、画像ビューに追加します。これが機能することを願っています

于 2012-11-27T06:29:23.873 に答える