矩形图像缩放以适应正方形以与 MPMediaItemArtwork 一起使用

Posted

技术标签:

【中文标题】矩形图像缩放以适应正方形以与 MPMediaItemArtwork 一起使用【英文标题】:Rectangle image scale to aspect fit square to use with MPMediaItemArtwork 【发布时间】:2016-11-02 08:57:40 【问题描述】:
MPMediaItemArtwork *albumArt = [[MPMediaItemArtwork alloc] initWithImage:image]];

我有一个UIImage,即rectangle,当我使用MPMediaItemArtwork 将它放到MPNowPlayingInfoCenter 时,它被裁剪为正方形。如何调整 UIImage 的大小以适应 square UIImage 的宽度并将其余部分留空?

【问题讨论】:

【参考方案1】:

UIImage 放入UIImageView,将contentMode 设置为UIImageViewUIViewContentModeScaleAspectFit,并将其渲染回UIImage

+ (UIImage *)imageToSquare:(UIImage *)image byWidth:(float)width
        UIImageView *view = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, width, width)];
        [view setImage:image];
        view.contentMode = UIViewContentModeScaleAspectFit;

        UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
        [view.layer renderInContext:UIGraphicsGetCurrentContext()];

        UIImage * img = UIGraphicsGetImageFromCurrentImageContext();

        UIGraphicsEndImageContext();

        return img;
    

【讨论】:

真棒答案! 但是在 Xcode 上运行时会发出警告“[UIImageView initWithFrame:] must be used from main thread” 这个问题请参考:***.com/questions/45081731/…

以上是关于矩形图像缩放以适应正方形以与 MPMediaItemArtwork 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

Android:缩放两个视图

FabricJS 缩放图像以适应宽度/大小

代号一:如何缩放图像以适应屏幕宽度?

Android Studio:缩放 ImageView 边界以适应图像

在 CircleImageView 中缩放不同大小的图像的问题

CSS图像缩放以适应区域不扭曲