背景
我们刚刚交换到UIL库,这看起来很棒。不幸的是,我们必须支持CMYK图像(违背我们的意愿)并试图修改名为ImageDecoder
的现有BaseImageDecoder
。
可在此处找到此代码。 http://pastebin.com/NqbSr0w3
我们有一个现有的AsyncTask http://pastebin.com/5aq6QrRd,它使用了这个SO帖子(Convert Image byte[] from CMYK to RGB?)中描述的ImageMagick包装器。这在我们的设置之前工作正常。
问题
当前解码器无法从文件系统加载缓存的图像,这会导致解码错误。我们查看了源代码并相信我们正在使用正确的函数。我们还认为在此过程中添加我们额外的解码级别是理想的,因为图像可能已经调整大小并存储在文件系统中。
File cachedImageFile = ImageLoader.getInstance().getDiscCache().get(decodingInfo.getImageUri());
if (!cachedImageFile.exists()) {
Log.v("App", "FILE DOES NOT EXIST");
return null;
}
以上行始终返回该文件不存在。
问题
此时我们处理CMYK图像是否不正确,如果不是,为什么我们无法从文件系统的缓存中获取图像?