小编Tha*_*nks的帖子

如何从iPhone OS中的PNG图像中获取干净的Alpha通道信息?

我创建了一个这样的上下文(简化):

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

CGContextRef context = CGBitmapContextCreate (bitmapData,
  pixWide,
  pixHeigh,
  8, // bits per component
  bitmapBytesPerRow,
  colorSpace,
  kCGImageAlphaPremultipliedFirst);
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试使用Alphatransparency为我的PNG中的第一个像素提取数据时,它有非常奇怪的alpha值.我有一个简单的PNG,它是一个正方形.在每个边缘上,我切掉了10x10像素,使它们完全透明.阿尔法不应该像153那样.

在CGImage.h中声明了一个kCGImageAlphaOnly.医生说:

kCGImageAlphaOnly没有颜色数据,只有alpha通道.

好吧,这实际上听起来不错,因为我只需要Alpha数据,而不需要其他任何东西.但这引起了我脑海中的一些问号.如果我有一个装备齐全的PNG,有一堆颜色+ alpha:这是否会确保我的PNG转换为匹配该颜色空间?或者我是否必须提供与指定颜色空间匹配的PNG?

编辑:我尝试使用kCGImageAlphaOnly,但是我收到此错误:

<Error>: CGBitmapContextCreate: unsupported parameter combination: 8 integer bits/component; 24 bits/pixel; 0-component colorspace; kCGImageAlphaOnly; 55 bytes/row.
Run Code Online (Sandbox Code Playgroud)

这可能是什么问题?我之前指定了这个:

size_t pixelsWide = CGImageGetWidth(inImage);
size_t pixelsHigh = CGImageGetHeight(inImage);
bitmapBytesPerRow = (pixelsWide * 1); // not * 4, because I just want alpha
bitmapByteCount = (bitmapBytesPerRow * pixelsHigh);
Run Code Online (Sandbox Code Playgroud)

编辑:我一分钟前读过这篇文章:

添加到XCode的PNG在编译期间通过'pngcrush'进行优化.这会进行一些字节交换(从RGBA到BRGA)和alpha的预乘.

我认为这种alpha的预乘会会带来麻烦.

编辑:在pngcrunch对PNG进行字节交换之后,alpha通道保持不变.因为我不关心颜色,只是alpha,我认为预乘不应该是一个太大的问题.

我的PNG已经是24位PNG,我将它们添加到Xcode中.

iphone cocoa-touch core-graphics uikit

4
推荐指数
1
解决办法
4436
查看次数

CGContextRef中的坐标系如何?

我假设原点位于左下角,y轴从0开始向上扩展.x轴从0开始向右扩展.

我只是问,因为我的绘图代码得到了非常奇怪的结果......我想确保我没有弄错这个部分.

iphone cocoa-touch core-graphics uikit

4
推荐指数
1
解决办法
3886
查看次数

在设备上进行测试和调试:每次连接设备时,如何阻止iTunes让我发疯?

它是如此令人烦恼:每当我将iPod touch连接到我的Mac时,iTunes都会启动并开始同步.这会导致在Xcode尝试在此时在设备上安装应用程序时与Xcode发生冲突.我的曝光窗口总是跳转到iTunes窗口.然后我必须等待,等待,等待,解除愚蠢的问题,例如"你真的要我删除所有内容并在你的设备上创建一个新的库?",再等一下,退出iTunes(以防止配置文件出现问题) ),并切换回Xcode.

如果我能在连接设备时禁用iTunes的自动启动,那将是如此的伟大,因为我真的不是这样的音乐连环.我只是为了应用而使用它,大多数时候,我只想测试/调试或只是给电池充电.

我在菜单中看不到任何选项.我还尝试禁用iPod后台服务,但这会自动一次又一次地自动启用.所以我希望有一个解决方案来阻止它自动启动.我的意思是......当我真的想要同步或新音乐等等时,我会手动启动iTunes.%$ !!§&!

iphone itunes

4
推荐指数
1
解决办法
765
查看次数

我最好使用NSUserDefaults来存储iPhone应用程序的最新状态吗?

我有一个基于视图的应用程序,用户可以在其中执行大量自定义操作,例如选择颜色,选择图片等.

首先,我考虑过使用sqlite3,但由于这会导致一个表只有一行(没有多用户应用程序),这对我来说似乎是一个很大的开销.然后我听说了NSUserDefaults.但我不确定这些数据的存储位置.它存储在应用程序的沙箱中吗?或者它存储在其他地方?其他应用是否可以访问该数据?记住这种定制的东西有好处吗?

iphone cocoa-touch nsuserdefaults uikit

4
推荐指数
1
解决办法
1254
查看次数

如何将IBAction方法连接到普通视图以进行修饰事件?

我在Xcode中创建了一个基于视图的空白新应用程序项目.它为它生成了一个myProjectViewController和一个nib.在该视图控制器的那个nib中,只有一个视图.我想测试一些事件处理的东西并创建一个 - (IBAction)方法,当我触摸视图时它只会记录一个"hello world".但出于某种原因,IB并没有给我机会来联系这个行动.我在那里做错了什么?我还尝试将UIView作为子视图放在那里.当我从那里拖到File的所有者(whoose类是myProjectViewController,我在标题中有IBAction)时,甚至没有提到IBAction.但它实际应该,对吧?

iphone interface-builder

4
推荐指数
3
解决办法
8612
查看次数

是否有SEL的包装器对象?

我想将选择器添加到NSMutableArray.但由于它们是不透明的类型而没有物体,这不起作用,对吧?我可以使用包装器对象吗?或者我必须创建自己的?

iphone cocoa-touch selector uikit

4
推荐指数
2
解决办法
1269
查看次数

PHP适用于非常大的项目吗?它可以是交易安全的吗?

这个问题看似奇怪.

但是每次我做过PHP项目时,都会遇到这样糟糕的经历:

脚本在10秒后取消运行.这导致非常糟糕的数据库不一致(删除循环的坏例子:用户即将删除相册.相册对象从数据库中删除,然后删除照片的一半,脚本被杀死的地方,以及剩下10,000张照片,没有参考).

这不是交易安全的.我从来没有找到办法安全地做某事,以确保完成.如果脚本被杀死,它就会被杀死.就在循环中间.它刚刚被杀死了.这从来没有发生在使用java的tomcat上.如果需要很长时间,Java会运行并运行和运行.

很多时事通讯脚本试图通过将工作分成很多包来解决这个问题,即一次发送100个,然后重新发送页面(噢,真的很愚蠢),做下一个,等等.最常见的事情是挂起或脚本需要的时间超过10秒,而您的平台也会瘫痪.

但后来,我听说非常大的项目使用像studivz这样的PHP(德国的facebook克隆,实际上是德国最大的网站).所以有一种希望,这种不良行为只是来自不专业的托管公司,因为他们的服务器非常糟糕.这有什么道理?它是否可以这样配置,脚本永远不会因为它们需要更长时间而被杀死?

php

4
推荐指数
2
解决办法
2342
查看次数

iPhone上是否存在核心数据?或者你如何在iPhone上保存数据?

让我们说我做了一个应用程序,使用户可以做短信和写下来.iPhone OS上还有核心数据吗?或者你如何在iPhone中保存这些数据呢?

iphone cocoa cocoa-touch core-data objective-c

3
推荐指数
2
解决办法
2183
查看次数

iPhone开发人员标准计划(99美元)和企业计划(299美元)有什么区别?

有人可以指出有什么区别吗?

在用我们的辛勤工作支持iPhone的时候,我们实际上需要支付这么多钱?

当我想出售应用程序以换取金钱时,我是否必须拥有企业会员资格(299美元)?或者当我"只"拥有更便宜的标准会员资格(99美​​元)时,我还可以销售应用程序吗?

每次我想将新应用程序上传到App Store时是否需要付费?标准会员资格中的钩子在哪里?

iphone objective-c ipod-touch

3
推荐指数
1
解决办法
4876
查看次数

iPhone是否支持具有透明度的24位PNG?

我知道iPhone更喜欢PNG.但PNG-24还有透明度吗?我希望它能做到!

iphone png

3
推荐指数
1
解决办法
1850
查看次数