簡體   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