Tag: png

Png的iOS – png的捆绑vs下载 – png8 vs png24

我正在写一个iOS应用程序,并有一些关于使用PNG和性能的问题,我找不到任何答案。 我的应用程序使用来自2个来源的PNG,一些在应用程序包中,而另外一些则从互联网上下载并存储在本地。 应用程序包中的那些我有我的脑袋,我知道当应用程序编译(字节交换和预乘Alpha)时,xCode优化它们的iOS。 我有关于png从互联网下载的以下问题。 1)如果下载的图像和捆绑包中的图像,你仍然可以从iOS中使用PNG获得性能优势。 xCode优化是否可以以某种方式应用于下载的图像? 2)除了文件大小,使用png8 vs png24还有什么优点(或缺点)吗? 从本地文件扩展时,它们是否占用较less的内存? 扩展它们是否花费较less的努力? animation有什么性能提升吗? 还是从更小的文件大小和更好的下载时间的唯一收益? 在此先感谢您的任何答案。 保罗

为什么iOS应用程序包中的PNG图像比在我的项目中大?

我正在更新iOS 6的Hungry Helga(iPhone和iPad版本),我的新应用程序包档案中的所有PNG文件都比我以前的版本大20%到40%。 当然,这是让我超过了50 MB的3G下载限制,所以我真的想弄清楚是怎么回事。 我目前在OSX 10.7.5上使用Xcode 4.5版本。 如果我记得正确的话,以前的版本是用Xcode 4.2构build的。 我尝试打开和closures构build设置中的PNG压缩,但对包中的图像大小没有影响。 举一个具体的例子,我最大的PNG图像是1.9 MB作为源资源。 旧应用程序包中为2.1 MB,新应用程序包中为2.5 MB。 苹果是否改变了PNG压缩器的工作方式,或者有可能是我错过了什么?

如何在iOS中将自定义元数据写入PNG图像

我的应用程序应该能够编写自定义元数据条目到PNG图像导出到UIPasteboard。 把这个主题的各个post拼凑在一起,我就能够拿出下面给出的类来源。 使用button触发copyPressed方法,我可以使用JPG图像(EXIF)设置自定义元数据: Image[6101:907] found jpg exif dictionary Image[6101:907] checking image metadata on clipboard Image[6101:907] { ColorModel = RGB; Depth = 8; Orientation = 1; PixelHeight = 224; PixelWidth = 240; "{Exif}" = { ColorSpace = 1; PixelXDimension = 240; PixelYDimension = 224; UserComment = "Here is a comment"; }; "{JFIF}" = { DensityUnit = […]

如何在iOS上用libtiff编写1bpp tiff?

我试图用libtiff写一个UIImage作为tiff。 问题是,即使我把它写成每像素1位,当我期望更多的像100k或更less的东西时,文件仍然在2-5MB范围内出现。 这是我得到的。 – (void) convertUIImage:(UIImage *)uiImage toTiff:(NSString *)file withThreshold:(float)threshold { TIFF *tiff; if ((tiff = TIFFOpen([file UTF8String], "w")) == NULL) { [[[UIAlertView alloc] initWithTitle:@"Error" message:[NSString stringWithFormat:@"Unable to write to file %@.", file] delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK", nil] show]; return; } CGImageRef image = [uiImage CGImage]; CGDataProviderRef provider = CGImageGetDataProvider(image); CFDataRef pixelData = CGDataProviderCopyData(provider); unsigned char […]

iOS上的PNGvalidation

在iOS上编写地图应用程序,使用OpenStreetMap图块。 地图平铺图像是asynchronous下载并存储在字典中,或者保存在SQLite数据库中。 偶尔,无论出于何种原因,在尝试渲染地图平铺图像时,出现以下错误: ImageIO: <ERROR> PNGinvalid distance too far back 这会导致令人讨厌的黑色方块出现在我的地图上。 这是发生这种情况的一段代码: NSData *imageData = [TileDownloader RetrieveDataAtTileX:(int)tilex Y:(int)tiley Zoom:(int)zoomLevel]; if (imageData != nil) { NSLog(@"Obtained image data\n"); UIImage *img = [[UIImage imageWithData:imageData] retain]; // Perform the image render on the current UI context. // ERROR OCCURS BETWEEN PUSH AND POP UIGraphicsPushContext(context); [img drawInRect:[self rectForMapRect:mapRect] blendMode:kCGBlendModeNormal […]

JPG和2X图像的JPG图像

我正在研究iPhone应用程序并定位iOS 4.0或更高版本。 我想添加一个图像到UIImageView,图像是JPEG格式 。 这是我迄今为止所做的。 UIImageView *bgImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 246.0)]; bgImageView.image = [UIImage imageNamed:@"background"]; [self.view addSubview:bgImageView]; [bgImageView release]; 我已经添加了两个图像, background.jpg(正常的1x图像) background@2x.jpg(用于2x /视网膜显示)。 但是当我build立和运行,一切运行良好,除了没有背景。 我所有的其他小工具都在那里,但有一个白色的背景和图像没有显示。 接下来,我为我的背景创build了两个PNG图像,将其添加到项目中并运行。 这一次我的背景被显示。 我感到困惑,因为根据文档 jpg图像可以在iphone中使用UIImage。 我再次尝试使用我的JPG图片,并将上面的代码更改为此 UIImageView *bgImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 246.0)]; bgImageView.image = [UIImage imageNamed:@"background.jpg"]; //added extension [self.view addSubview:bgImageView]; [bgImageView release]; 当我运行上面的代码时,显示背景图像,但是没有加载2个图像。 这显示我的JPG图像是好的,它不是罪魁祸首。 所以当我给图像名称没有扩展名时,png文件(包括1x和2x)被加载到各自的设备上,jpg文件根本不被加载。 […]

如何在开放的gl纹理的alpha中编码发射或镜面reflection信息

我有一个OpenGL纹理与UV地图上。 我已经读过关于使用alpha通道来存储一些其他的值,从而节省了需要从某个地方加载额外的地图。 例如,您可以在alpha中存储高光信息(发光度)或发射贴图,因为您只需要一个浮点数而不使用alpha。 所以我试了一下。 写着色器不是问题。 我已经完成了所有这一部分。 问题就是让我想要的所有4个通道进入纹理。 我有PSD中的所有地图,我把基本地图放在rgb中,排放地图放在a中。 但是,当你保存为png的alpha不是保存(如果你把它添加为一个新的频道),或通过预先将透明度乘以rgb(如果您将地图作为蒙版)来破坏rgb。 显然PNG文件支持透明度,但本身不支持alpha通道。 所以似乎没有办法控制所有4个通道。 但是我已经读过关于这样做。 那么,我可以从PSD保存它,我可以在iPhone中加载我的图像加载器的格式? NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:type]; NSData *texData = [[NSData alloc] initWithContentsOfFile:path]; UIImage *image = [[UIImage alloc] initWithData:texData]; 此方法是否接受其他文件格式? 像TIFF,这将允许我控制所有4个频道? 我可以使用纹理工具来制作一个PVR ..但是从文档看来,它似乎也采用PNG作为input。 编辑: 首先要清楚这是在iPhone。 这可能是psd的错。 就像我说的,在我可以find的psd(cc 14.2 mac)版本中,有两种方法来设置文档。 一个是手动添加一个新的频道,并粘贴在那里的地图。 它显示为一个红色的覆盖。 第二个是添加一个蒙版,选项点击它并粘贴在那里的阿尔法。 在这种情况下,它显示与阿尔帕作为一个透明的棋盘在阿尔法零区。 当我保存为PNG的alpha选项灰色。 当我把png加载到psd时,它似乎是预乘。 我不能回到我在Photoshop中的完整RGB数据。 是否有一个不同的工具,我可以用来将两个地图合并成一个PNG,将其存储在PNG 32? TIFF将无法正常工作,因为它不会存储alpha。 也许我在想TGA。 我也在我的装载机中注意到了这一点 GLuint […]

批量优化的iPhone / iPad的PNG显示Xcode做

我正在为ipad做一个杂志查看器,我正在为这个performance而苦恼。 我发现显示PNG最昂贵的部分是加载过程。 我知道xcode能够在构build期间优化png,并且这样的图像加载得更快。 但是我不能把所有的图像都包含进来,因为它会很大。 你知道如何优化一个任意的PNG,而不包括在构build过程中? 你知道什么是iPhone的最佳格式? 我认为,PNG应该使用RGB-8888配色scheme,但我不知道还有什么是重要的。 也许你知道imagemagick的确切参数?

如何在UIImageView正在下载时显示渐进式JPEG?

从网上下载图像并在UIImageView中显示它相当简单。 但是,这需要在向用户显示图像之前完全下载图像,彻底击败渐进式JPEG(和PNG)图像。 如何在传输完成时渲染部分下载的图像? 我可以想象SDK有一些更新图像的callback函数,但是我找不到这样的函数。 目前的iOS SDK有没有可能?

UIImageView不显示来自UIImagePickerController的PNG图像的透明度

我当然希望我错过了一些东西,因为我不明白为什么这样工作。 我有一个PNG图像,它有一个完全透明的背景,因为我想覆盖在UIImageView内的其他图像。 包含在XCode项目中的PNG图像都可以正常工作。 问题是,当我使用UIImagePickerController在dynamicselect这些相同的PNG图像,然后将其分配给UIImageView ,由于一些非常奇怪的原因,它不尊重它作为一个具有透明度的PNG图像,而是它添加一个白色的背景。 任何人以前见过这个,我怎么解决这个问题? *更新#1:我决定尝试一些似乎证实我的理论的东西。 我决定把自己保存到设备上的原始PNG图像发给我自己,看看图像是以JPG格式发送给我的。 在我看来,当你将图像保存到iPhone上的照片将它转换为JPG,这是相当令人震惊的。 希望有人解决这个问题。 将原始图像testImage1.png和testImage2.png保存到Photos中,然后通过电子邮件发回给我自己,返回为IMG_XXXX.jpg和IMG_XXXX.jpg *更新#2:我一直玩这个我们更多,发现了一些事情,并在这个过程中能够回答我自己的问题。 (1)在更新#1中,我的理论是部分正确的,但是保存照片时转换不会发生,看起来就像在飞行中一样。 内部照片存储原始图像扩展(2)我能够validation这一点,当我在我的UIImagePickerControllerDelegate实现,我正在使用 let imageData = UIImageJPEGRepresentation(image, 1.0) 而不是这个 let imageData = UIImagePNGRepresentation(image) 当我使用第二行代码时,它识别图像的原始透明属性。