在CGImageDestinationRef蘋果引用它提到了It can contain thumbnail images as well as properties for each image.
通過設置properties
參數時,將屬性部分添加到CGImageDestinationRef
,但我無法弄清楚如何添加縮略圖。添加/通過(exif)縮略圖到CGImageDestinationRef
我要添加的縮略圖(或直接從CGImageSourceRef
傳遞)到CGImageDestinationRef
,使得所得到的圖像被打開時與CGImageSourceRef
我可以使用CGImageSourceCreateThumbnailAtIndex
檢索原始縮略圖。
NSDictionary* thumbOpts = [NSDictionary dictionaryWithObjectsAndKeys:
(id)kCFBooleanTrue, (id)kCGImageSourceCreateThumbnailWithTransform,
(id)kCFBooleanFalse, (id)kCGImageSourceCreateThumbnailFromImageIfAbsent,
[NSNumber numberWithInt:128], (id)kCGImageSourceThumbnailMaxPixelSize,
nil];
CGImageRef thumb = CGImageSourceCreateThumbnailAtIndex(iSource, 0, (CFDictionaryRef)thumbOpts);
上面的代碼返回它已存儲的圖像的縮略圖,但是當我通過CGImageDestinationRef
傳遞圖像,縮略圖丟失。
有沒有辦法保留原始縮略圖(或創建一個新的)? CGImageProperties Reference似乎沒有任何鍵存儲縮略圖的位置。
這是非常多的我在問題中添加了相同的代碼,以獲取縮略圖。該問題詢問如何在CGImageDestinationRef中設置縮略圖。 – 2015-04-29 05:40:29
CGImageSourceCreateThumbnailAtIndex的選項字典用於從CGImageDestination中獲取縮略圖。如果不存在縮略圖,則將kCGImageSourceCreateThumbnailFromImageIfAbsent設置爲kCFBooleanTrue會導致創建縮略圖。如果您正在嘗試向CGImageDestination添加縮略圖圖像,我的代碼片段和您在原始問題中發佈的代碼片段是無關緊要的。請參閱我的更新回答,瞭解如何添加縮略圖並檢索它。 – 2015-05-05 06:10:19
這看起來像一個體面的解決方法。但是,這隻適用於從我自己的應用程序設置和加載縮略圖。其他應用程序很可能會嘗試獲取緩存的縮略圖,而不是從索引1讀取圖像。如果圖像容器包含多個圖像,這也可能導致其他問題。 – 2015-05-09 10:04:11