欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

ios学习之真机测试 copy图片错误解决方案

程序员文章站 2023-12-25 20:31:27
错误:     copypngfile /users/gongihou/library/developer/xcode/deriveddata/kt...

错误:
    copypngfile /users/gongihou/library/developer/xcode/deriveddata/ktvgo-frborfduejxrajgpkfdaipygijow/build/products/debug-iphoneos/ktvgo.app/zhuangtai.png ktvgo/zhuangtai.png
    cd /users/gongihou/documents/910
    setenv path "/applications/xcode.app/contents/developer/platforms/iphoneos.platform/developer/usr/bin:/applications/xcode.app/contents/developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /applications/xcode.app/contents/developer/platforms/iphoneos.platform/developer/usr/bin/copypng -compress "" /users/gongihou/documents/910/ktvgo/zhuangtai.png /users/gongihou/library/developer/xcode/deriveddata/ktvgo-frborfduejxrajgpkfdaipygijow/build/products/debug-iphoneos/ktvgo.app/zhuangtai.png


   not a png filcommand /applications/xcode.app/contents/developer/platforms/iphoneos.platform/developer/usr/bin/copypng emitted errors but did not return a nonzero exit code to indicate failure

 

[attachment=47489]

 


方案:

1、

texturepacker png 图片优化
如果你有某些原因,让你坚持要使用png文件格式而不是我之前极力向你推荐的pvr.ccz文件格式,那么texturepacker有一个选项,叫做“png opt level”(png优化级别),可以帮助我们减少png文件的大小(注意:这样并不会影响图片加载时间)

 

ios学习之真机测试 copy图片错误解决方案

就我目前的理解来看,最大的优化级别可以生成最小的文件大小。但是,它有一个缺点,就是非常耗时。对于2009年出的27寸的imac来说,处理尺寸稍大的纹理,需要耗费10-20的时间来处理。由于该优化过程采用了多线程的方式,所以,如果你有机器是四核的,那么速度应该会快一些。

当然,你只有在真正发布应用的时候才需要利用这个优化特性。现在的问题是,它到底可以减少多少文件体积呢?

我最大的一张png图片从2.4mb减少到了2.2mb.小一些的纹理从180kb减至130kb。可能单个文件减少的量并不是很多,可是当你的png图片的总大小有18mb时,它可以使之减少至16mb。

注意,在xcode里面有一项设置,你可能会把它忽略掉。你需要关闭"compress png files"开关,因为这个选项有可能会使你的png图片膨胀。你可以在xcode的build settings里面设置,如下所示:

 

ios学习之真机测试 copy图片错误解决方案

如果激活此png压缩选项,xcode会在png文件打包进程序的时候运行自带的png优化程序。所以,有可能会使我们先前使用tp优化过的png图片再次膨胀。因此,再次确保这个选项已关闭!

不过即使你没有禁用此选项,你的程序大小还是会有所减小。因为,你有可能使用一些没有被tp优化过的png图片。

2、将图片放到bundle里边(制作bundle方法,创建一个文件夹,将内容放进去,然后重命名,将文件夹后缀名改为bundle就ok了)。然后将bundle添加入工程,

下边是对bundle中内用的使用。

首先需要添加#import <quartzcore/quartzcore.h>头文件


  nsbundle *mybundle = [nsbundle bundlewithpath:[[nsbundle mainbundle]pathforresource:@"bundle" oftype:@"bundle" ]];//获取设定的bundle

    nsstring *imagestr = [mybundle pathforresource:imagename oftype:@"png"];//在该路径下寻找imagename为名字的图片后边是格式,返回值是图片的绝对路径

    [_imgview setimage:[uiimage imagewithcontentsoffile:imagestr]];//将图片添加到imageview试图。

 

上一篇:

下一篇: