Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 视网膜显示上UIImage并置中的奇怪弧光_Ios_Png_Openstreetmap_Retina Display - Fatal编程技术网

Ios 视网膜显示上UIImage并置中的奇怪弧光

Ios 视网膜显示上UIImage并置中的奇怪弧光,ios,png,openstreetmap,retina-display,Ios,Png,Openstreetmap,Retina Display,我的应用程序中有一个非常奇怪的问题,它只发生在视网膜显示器上,而不是模拟器上 我开发了一套带有嵌入式openstreetmaps瓷砖(地图碎片)的应用程序 在每个应用程序中,我都有很多地图(256px/256px)显示在UIScrollView中。 它能在非视网膜设备和视网膜模拟器上完美工作 问题:每个平铺都以随机颜色显示最后一行像素(大多数情况下为黑色) 为了举例说明,我用设备和模拟器制作了同一地点的屏幕截图。它们组合在一张图片中: 您可以看到黑色像素线不在平铺外,而是在平铺的最后一个像素线

我的应用程序中有一个非常奇怪的问题,它只发生在视网膜显示器上,而不是模拟器上

我开发了一套带有嵌入式openstreetmaps瓷砖(地图碎片)的应用程序

在每个应用程序中,我都有很多地图(256px/256px)显示在UIScrollView中。 它能在非视网膜设备和视网膜模拟器上完美工作

问题:每个平铺都以随机颜色显示最后一行像素(大多数情况下为黑色)

为了举例说明,我用设备和模拟器制作了同一地点的屏幕截图。它们组合在一张图片中:

您可以看到黑色像素线不在平铺外,而是在平铺的最后一个像素线内(导致两个屏幕之间没有移动)

更奇怪的是:有时,当瓷砖中的颜色变化很小时,像素线采用随机元素的颜色,有时它根本不出现

这里,蓝线、灰线、黑线

编辑:

我对代码进行了大量简化,但问题仍然存在于2-tiles加载中:

int W = 256;
int H = 256;
NSString * map1 = [[NSBundle mainBundle] pathForResource:@"test1.png" ofType:nil];
NSString * map2 = [[NSBundle mainBundle] pathForResource:@"test2.png" ofType:nil];
UIImageView * pieceOfMap1 = [[UIImageView alloc] initWithFrame:CGRectMake(0, H*0, W, H)];
UIImageView * pieceOfMap2 = [[UIImageView alloc] initWithFrame:CGRectMake(0, H*1, W, H)];
[pieceOfMap1 setImage:[UIImage imageWithContentsOfFile:map1]];
[pieceOfMap2 setImage:[UIImage imageWithContentsOfFile:map2]];
[self.view addSubview:pieceOfMap1];
[self.view addSubview:pieceOfMap2];
我尝试使用128x128@2x瓷砖,但问题仍然存在
它可能来自OpenStreetMaps图像吗

我的两个互动程序可以在这里下载:

好的

我只是在photoshop中打开两个测试图块,没有做任何更改,然后再次保存在png中

黑线不再出现

因此,它来自开放的街道地图PNG图像(要获取其中一幅图像,请转到地图上的右clic,然后保存图像)

这个问题已经部分解释了,但现在我有2067个文件要photoshop

我在谷歌上搜索了一下,但是我没有找到任何可以解释某事的东西


如果没有其他解释,我会接受我自己的答案,但如果有人告诉我原因,我会很高兴。

我的建议是添加一大堆日志语句,在其中指定瓷砖框架和尺寸。这看起来像是一个浮点问题,你指定的数字都是小分数。谢谢你的评论。我的每一个帧操作数都是整数。我已经记录了这张图框,我在视网膜模拟器和视网膜设备上也有同样的记录。我宁愿认为这是一个调整大小的小故障。我做了更多的测试,我甚至可以用一个非常简单的代码重现这个错误。我编辑了我的问题。也许你应该使用浮点数而不是整数。CGW=250.0f;我试过了,我甚至记录了每一个变量,没有奇怪的事情发生,行保持不变。PNG格式总的来说是相当复杂的-正常使用显然不是。除了PhotoShop,你还有其他选择。Mac附带sip,您可以轻松获得pngcrush和使用PNG操作的朋友。如果在图像上使用pngcrush,或者使用sip将其转换为jpg,那么问题也会消失。我看到过一些帖子,其中谈到iOS有时无法准确显示PNG,这些PNG中有不寻常的设置。是的,非常感谢。我成功地尝试了rapidoResizer,但是png文件现在大了两倍。我尝试了用jpeg格式转换文件的sips,但是使用这些图像,jpeg格式比png格式重。我没有成功安装pngcrush…pngcrush已经安装在Xcode app-/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush中