繁体   English   中英

如何在Swift中将PNG转换为WebP?

[英]How to convert a PNG to a WebP in Swift?

我正在尝试在Swift中的Webp中转换PNG图像,我使用的唯一框架是通过Objective-c ++的 OpenCV
问题是,如果我将图像调整为512x512(这是我需要的分辨率),则会崩溃: 在此处输入图片说明 如果我将图像大小调整(使用OpenCV或Swift调整大小)到另一个分辨率(例如510x510),它都不会崩溃。

奇怪的是,在模拟器上它从未崩溃,而在iPhone XS上,它崩溃了90%。

如何在Swift中将PNG转换为Webp?
如果Mat是512x512,为什么OpenCV在imwrite指令上崩溃?

更新
OpenCV版本:3.4.2
我发现从Core Graphics框架之前处理PNG图像时会发生此问题。 我需要使用它,因为我通过以下方式将UIVIew保存为UIImage:

let renderer = UIGraphicsImageRenderer(bounds: bounds)
        return renderer.image { rendererContext in
            layer.render(in: rendererContext.cgContext)
        }

我最终使用了另一个框架将PNG转换为WebP: https : //github.com/seanooi/iOS-WebP ,不得不创建包装器才能快速使用它,但效果很好

我的包装器非常简单,但是可以满足我的需求:

#import <Foundation/Foundation.h>
#import "WebPWrapper.h"
#import "UIImage+WebP.h"

@implementation WebPWrapper
-(NSData *)convertUIImageToWebp:(UIImage *)image :(int)quality {
    NSData *webPData = [UIImage imageToWebP:image quality:quality];
    return webPData;
}
@end

我以这种方式迅速使用它:

let webPData = WebPWrapper().convertUIImage(toWebp: image, 90)

迅捷4.0

吊舱'SDWebImage''SDWebImage/WebP'

导入SDWebImage

if let image_download = UIImage(data: data) {
   let photo:Data = image_download.sd_imageData(as: SDImageFormat.webP)!
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM