0

I am developing iOS App with SDWebImage.

I would like to trim central 100px*100px from downloaded image and set this in UIImageView.

I am writing down the following code, however not a trimmed image but an original downloaded image is set in NewsImage.

    UIImageView *NewsImage = (UIImageView *)[cell viewWithTag:1];
    [NewsImage setImageWithURL:imageURL
              placeholderImage:placeholderImage
                       options:SDWebImageProgressiveDownload
                    completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
                         int imageW = image.size.width;
                         int imageH = image.size.height;

                         int posX = (imageW - 100) / 2;
                         int posY = (imageH - 100) / 2;
                         CGRect trimArea = CGRectMake(posX, posY, 100, 100);

                         CGImageRef srcImageRef = [image CGImage];
                         CGImageRef trimmedImageRef = CGImageCreateWithImageInRect(srcImageRef, trimArea);
                         image = [UIImage imageWithCGImage:trimmedImageRef];
                        }];

Could you tell me how to solve this problem?

supermonkey
  • 631
  • 11
  • 25

1 Answers1

0

Try something like this:

UIImageView *NewsImage = (UIImageView *)[cell viewWithTag:1];
    [NewsImage setImageWithURL:imageURL
              placeholderImage:placeholderImage
                       options:SDWebImageProgressiveDownload
                    completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
                         float imageW = image.size.width;
                         float imageH = image.size.height;

                         float posX = (imageW - 100) / 2;
                         float posY = (imageH - 100) / 2;
                         CGRect trimArea = CGRectMake(posX, posY, 100, 100);

                         CGImageRef srcImageRef = [image CGImage];
                         CGImageRef trimmedImageRef = CGImageCreateWithImageInRect(srcImageRef, trimArea);
                         image = [UIImage imageWithCGImage:trimmedImageRef];
                         NewsImage.image = image;
                         CGImageRelease(imageRef);
                        }];
Jasper
  • 7,031
  • 3
  • 35
  • 43