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

狮子789

我目前正在使用的代码不是模糊的,但是只是切掉了一部分,如果我尝试在线使用其他代码,它也会切掉一部分,并且也变得很模糊。我需要做什么,图片是512x512,试图将其降低到100x100,并且是jpg。

这是我现在使用的代码:

//setting up each cell
    -(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
                     cellForItemAtIndexPath:(NSIndexPath *)indexPath
    {
        CollectionGridCell *myCell = [collectionView
                                        dequeueReusableCellWithReuseIdentifier:@"GridCell"
                                        forIndexPath:indexPath];


        long row = [indexPath row];

           NSURL *baseUrl = [NSURL URLWithString:@"http://example.com/"];

    NSString *imageItemName = [homeImages objectAtIndex:row];
    NSURL *url = [NSURL URLWithString:imageItemName relativeToURL:baseUrl];

   // NSURL *url = /* prepare a url... see note below */
    [myCell.homeImage setImageWithURL:url
                     placeholderImage:[UIImage imageNamed:@"menuButton.png"]
                            completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
                                // inspect cacheType here to make sure it's cached as you want it
                               myCell.homeImage.image = [self resizeImage:image newSize:CGSizeMake(75,75)];

                            }];

    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 = [UIImage imageWithCGImage:newImageRef];

    CGImageRelease(newImageRef);
    UIGraphicsEndImageContext();

    return newImage;

}

更新:到目前为止,我什至尝试过以下任何一种方法,都导致中间出现错误。我是否需要在代码中指定其他内容,是否有某些内容可以称呼中间部分?

这是我的网格单元.h文件:

#import <UIKit/UIKit.h>

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

@end

这是我的网格单元.m文件:

#import "CollectionGridCell.h"

@implementation CollectionGridCell

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    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
阿普尔夫

无需调整图像大小。只需将以下属性设置为您的图像视图即可。

 [myCell.homeImage setImageWithURL:url
                     placeholderImage:[UIImage imageNamed:@"menuButton.png"]
                            completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
                                // inspect cacheType here to make sure it's cached as you want it
                               myCell.homeImage.image = image;
                               myCell.homeImage.contentMode = UIViewContentModeScaleAspectFit;
                            }];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

调整大小时图像模糊

来自分类Dev

防止调整大小的图像变得模糊

来自分类Dev

UWP:如何调整图像大小

来自分类Dev

如何调整按钮图像的大小?

来自分类Dev

如何调整<a> </a>(链接图像)之间的图像大小?

来自分类Dev

如何调整<a> </a>(链接图像)之间的图像大小?

来自分类Dev

CSS-调整大小时图像/文字模糊

来自分类Dev

画布:在不模糊的情况下调整图像大小

来自分类Dev

重新调整图像网格大小时如何避免出现这些间隙?

来自分类Dev

在JavaFX中调整窗口大小时如何调整图像大小

来自分类Dev

在Swift中调整通用PDF图像资源的大小会产生模糊的图像

来自分类Dev

如何防止在CSS中调整图像大小?

来自分类Dev

如何调整伪元素中图像的大小?

来自分类Dev

如何使用PHP批量调整图像大小

来自分类Dev

如何根据div宽度调整图像大小?

来自分类Dev

如何使用Bootstrap调整图像大小

来自分类Dev

如何通过拖动来调整图像大小

来自分类Dev

如何用枕头调整图像大小?

来自分类Dev

如何调整图像分割蒙版的大小?

来自分类Dev

如何为较小的屏幕调整图像大小?

来自分类Dev

如何使用python下载调整大小的图像?

来自分类Dev

如何调整PIL.ImageTk图像的大小?

来自分类Dev

如何在ImageDataGenerator中调整图像大小

来自分类Dev

如何在UIWebView中调整图像大小?

来自分类Dev

调整窗口大小时如何使图像流畅?

来自分类Dev

如何调整位图图像的大小:Android

来自分类Dev

如何调整图库中图像的大小

来自分类Dev

如何使用PHP批量调整图像大小

来自分类Dev

如何使用libpng调整图像大小?