【问题标题】:Creating a MSSticker with a remote image使用远程图像创建 MSSticker
【发布时间】:2016-12-29 10:28:37
【问题描述】:

我正在尝试找出使用托管在网络上的图像创建 MSStickers 的方法。我可以使用本地图像创建 MSStickers,例如:

NSString *imagePath = [[NSBundle mainBundle] pathForResource: @"image_name" 
                                                      ofType: @"png"];
NSURL *imageURL = [NSURL fileURLWithPath: urlString];
MSSticker *sticker = [[MSSticker alloc] initWithContentsOfFileURL: stickerURL
                                             localizedDescription: @"my-sticker"                                          
                                                            error: &err];

但我不能这样做:

NSString *imageURLString = @"https://my-cdn/my-sticker.png"; 
NSURL *imageURL = [NSURL urlWithString: urlString];
MSSticker *sticker = [[MSSticker alloc] initWithContentsOfFileURL: stickerURL
                                             localizedDescription: @"my-sticker"                                          
                                                            error: &err];

【问题讨论】:

    标签: ios objective-c ios10 imessage


    【解决方案1】:

    不,目前不可能。 但是你可以做到这一点,这离你想要的并不远:

    1. 从您的服务器下载图片
    2. 将其存储在设备的本地目录中
    3. 使用此本地文件的 URL 创建您的贴纸
    4. 可选:如果您不再需要该图像,请将其从目录中删除

    【讨论】:

    • 当您对远程图像进行 DL 时,您是否将它们全部写入[URL] 类型的数组中的Document 目录中的一个文件中?
    • 嘿!不,它们必须是具有文件扩展名的正确文件(如 .png)。这就像实际上将图像下载到您的计算机一样。您会在“下载”文件夹中找到从 Internet 下载的图像,对吗?这里也一样,只是文件夹在你的app目录下。
    • 嘿,感谢您回来!好的-我应该使用以下过程进行DL'ing,转换然后写入图像:String -> URL -> NSData -> UIImagePNGRepresentation -> .writeToFile - 然后找到图像在目录中(作为类型UIImagePNGRepresentation)并将其转换为类型MSSticker
    • 是的,你明白了:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 2020-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    相关资源
    最近更新 更多