菜鸟教程小白 发表于 2022-12-12 21:51:03

ios - 如何调整图像大小并避免其模糊?


                                            <p><p>我目前正在使用不模糊的代码,但它只是剪掉了一部分,如果我尝试在线使用不同的代码,它会剪掉一部分并且它也会变得模糊。我需要做什么,图片是 512x512 试图将其缩小到 100x100,它是 jpg。</p>

<p>这是我现在使用的代码:</p>

<pre><code>//setting up each cell
    -(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
                     cellForItemAtIndexPath:(NSIndexPath *)indexPath
    {
      CollectionGridCell *myCell = [collectionView
                                        dequeueReusableCellWithReuseIdentifier:@&#34;GridCell&#34;
                                        forIndexPath:indexPath];


      long row = ;

         NSURL *baseUrl = ;

    NSString *imageItemName = ;
    NSURL *url = ;

   // NSURL *url = /* prepare a url... see note below */
    [myCell.homeImage setImageWithURL:url
                     placeholderImage:
                            completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
                              // inspect cacheType here to make sure it&#39;s cached as you want it
                               myCell.homeImage.image = ;

                            }];

    return myCell;

}


- (UIImage *)resizeImage:(UIImage*)image newSize:(CGSize)newSize {
    CGRect newRect = CGRectIntegral(CGRectMake(0, 0, newSize.width, newSize.height));
    CGImageRef imageRef = image.CGImage;

    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0);
    CGContextRef context = UIGraphicsGetCurrentContext();

    // Set the quality level to use when rescaling
    CGContextSetInterpolationQuality(context, kCGInterpolationHigh);
    CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, newSize.height);

    CGContextConcatCTM(context, flipVertical);
    // Draw into the context; this scales the image
    CGContextDrawImage(context, newRect, imageRef);

    // Get the resized image from the context and a UIImage
    CGImageRef newImageRef = CGBitmapContextCreateImage(context);
    UIImage *newImage = ;

    CGImageRelease(newImageRef);
    UIGraphicsEndImageContext();

    return newImage;

}
</code></pre>

<p>更新:到目前为止,我尝试过的每一种方法,甚至是下面的方法,都会导致中间出现裁剪。我是否必须在我的代码中指定其他内容,是否有什么东西调用它来裁剪中间?</p>

<p>这是我的网格单元 .h 文件:</p>

<pre><code>#import &lt;UIKit/UIKit.h&gt;

@interface CollectionGridCell : UICollectionViewCell
@property (weak, nonatomic) IBOutlet UIImageView *homeImage;

@end
</code></pre>

<p>这是我的网格单元 .m 文件:</p>

<pre><code>#import &#34;CollectionGridCell.h&#34;

@implementation CollectionGridCell

- (id)initWithFrame:(CGRect)frame
{
    self = ;
    if (self) {
      // Initialization code
    }
    return self;
}

/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
    // Drawing code
}
*/

@end
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>无需重新调整图像大小。只需将以下属性设置为您的 ImageView 。</p>

<pre><code> [myCell.homeImage setImageWithURL:url
                     placeholderImage:
                            completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
                              // inspect cacheType here to make sure it&#39;s cached as you want it
                               myCell.homeImage.image = image;
                               myCell.homeImage.contentMode = UIViewContentModeScaleAspectFit;
                            }];
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何调整图像大小并避免其模糊?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23333498/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23333498/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何调整图像大小并避免其模糊?