为了在Cocoa应用程序中显示其中一个图像,我需要一种逐字节解析图像文件的方法,并从中“计算”一个位图,然后将其放入NSImage中.
在Objective-C/C++ocoa中执行此 *** 作的好方法是什么?
解决方法 解释图像数据的任务由图像的表示对象处理.要使用专有格式,您有以下几种选择:(a)创建自定义表示类,(b)将NSCustomImageRep与自定义委托一起使用,或(c)使用自定义对象将图像转换为支持的格式,例如原始位图.如果您选择创建自定义表示类,则将创建NSImageRep的子类,如Creating New Image Representation Classes中所述.这基本上要求您的类注册自身并能够绘制图像数据.除此之外,您可以覆盖方法以返回有关图像的信息,并且您将能够使用常规NSImage方法实例化图像.这种方法需要最多的工作.
使用NSCustomImageRep
比创建自定义实现所需的工作少.您的委托对象只需要能够在固定位置绘制图像.但是,您无法返回有关图像的其他信息,您需要在创建NSImage之前手动创建NSCustomImageRep对象.
将图像转换为不同的格式也比创建自定义表示更简单.它可以像创建适当大小的空白NSImage并绘制到其中一样简单.创建图像仍然比较复杂,因为您需要调用您的翻译方法,这会影响效率(未来的绘图时间和内存使用),因为您正在更改格式,这可能是好的也可能是坏的.您还将丢失图像对象与其源之间的任何关联.
总结以上是内存溢出为你收集整理的objective-c – 将专有二进制映像文件加载到NSImage的推荐方法?全部内容,希望文章能够帮你解决objective-c – 将专有二进制映像文件加载到NSImage的推荐方法?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)