相关疑难解决方法(0)

从枚举类型'枚举CGImageAlphaInfo'到不同枚举类型'CGBitmapinfo'(又名''枚举CGBitmapInfo')的隐式转换

我正在xCode5上将旧的iOS 5项目转换为iOS6.0,并且大多数警告和错误已经修复但是对于这个.有关如何重写代码以避免编译器警告的任何建议.

#define kBitsPerComponent 8
#define kBitmapInfo       kCGImageAlphaPremultipliedLast

 - (UIImage*)scaleToSize:(CGSize)size :(UIImage *)image
{
CGBitmapInfo bitmapInfo = kBitmapInfo;
size_t bytesPerRow = size.width * 4.0;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL, size.width,
                                             size.height, kBitsPerComponent,
                                             bytesPerRow, colorSpace, bitmapInfo);

CGRect rect = CGRectMake(0.0f, 0.0f, size.width, size.height);
CGContextDrawImage(context, rect, image.CGImage);

CGImageRef scaledImageRef = CGBitmapContextCreateImage(context);
UIImage* scaledImage = [UIImage imageWithCGImage:scaledImageRef];

CGImageRelease(scaledImageRef);
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);

return scaledImage;
}
Run Code Online (Sandbox Code Playgroud)

代码提供警告隐式转换从枚举类型'枚举CGImageAlphaInfo'到不同的枚举类型'CGBitmapinfo'(又名)'枚举CGBitmapInfo')

如果有人可以帮助修改代码,我将非常感激.

enums core-graphics ios

45
推荐指数
1
解决办法
2万
查看次数

在 SKScene swift 中获取点的颜色

我需要在 Swift 中为我的游戏获取像素/点的颜色。所以我试图找到一个输入 CGPoint 并返回一个颜色的函数,到目前为止我找到的所有东西都只返回 (0,0,0,0)。我认为这是因为我在我的游戏场景类(这是一个 SKScene)中执行此操作,并且该场景仅由视图控制器加载。任何解决方案?

(如果有更好的方法来检查精灵是否接触了同样有效的颜色)

提前致谢。

uicolor cgpoint sprite-kit swift swift3

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

比较两个 UIColors(在 UIImageView 中点击位置与资产目录颜色)

我需要点击一个UIImageView...

热点

...并将点击位置的颜色与从资产目录返回的颜色(或在代码中创建的自定义颜色)进行比较。

我在色彩空间方面遇到了很多麻烦,我的比赛总是没有。我已经阅读了一些关于 stackoverflow 的很棒的例子并尝试了它们,但我一定还是做错了什么。

我还尝试使用这样的自定义颜色(而不是资产颜色):

+ (UIColor *)themeRed {
    return [UIColor colorWithRed:192.0f/255.0f green:92.0f/255.0f blue:42.0f/255.0f alpha:1];
}
Run Code Online (Sandbox Code Playgroud)

仍然没有匹配项。我的测试匹配代码如下:

-(void)tappedColorView:(UITapGestureRecognizer *)tapRecognizer {
    CGPoint touchPoint = [tapRecognizer locationInView: uiiv_hs];
    //NSLog(@"my color %@", [uiiv_hs colorOfPoint:touchPoint]);

    UIColor *color = [uiiv_hs colorOfPoint:touchPoint];
    NSLog(@"color %@",[uiiv_hs colorOfPoint:touchPoint]);
    UIColor *matchcolor = [UIColor themeRed];
    NSLog(@"mcolor %@",[UIColor themeRed]);

    NSArray *colors = [NSArray arrayWithObjects:[UIColor colorNamed:@"Color01"],[UIColor colorNamed:@"Color02"], nil];

    if ([color matchesColor:matchcolor error:nil]) {
        NSLog(@"1Match!");
    } else {
        NSLog(@"1No Match!");
    }

    if ([color isEqualToColor:[UIColor …
Run Code Online (Sandbox Code Playgroud)

xcode objective-c uicolor cgcolorspace

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

在Swift中获取点的颜色

我找到了一个Objective-C代码示例,它可以在这里得到一个像素的颜色: 如何在触摸时获得像素颜色?

我需要帮助的特定代码部分是使用CGColorSpaceCreateDeviceRGB创建上下文的地方:

---这是Objective-C代码

unsigned char pixel[4] = {0};
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(pixel,
            1, 1, 8, 4, colorSpace, (CGBitmapInfo)kCGImageAlphaPremultipliedLast);
CGContextTranslateCTM(context, -point.x, -point.y);
Run Code Online (Sandbox Code Playgroud)

我最好的尝试看起来如下(我没有返回任何东西,但我正试图先正确地获取上下文):

---这是我对Swift转换的最佳尝试

func getPixelColorAtPoint()
    {
        let pixel = UnsafeMutablePointer<CUnsignedChar>.alloc(1)
        var colorSpace:CGColorSpaceRef = CGColorSpaceCreateDeviceRGB()
        let context = CGBitmapContextCreate(pixel, width: 1, height: 1, bitsPerComponent: 8, bytesPerRow: 4, space: nil, bitmapInfo: CGImageAlphaInfo.PremultipliedLast)

    }
Run Code Online (Sandbox Code Playgroud)

但是这给了我一个错误

Cannot convert the expression's type '(UnsafeMutablePointer<CUnsignedChar>, width: IntegerLiteralConvertible, height: IntegerLiteralConvertible, bitsPerComponent: IntegerLiteralConvertible, bytesPerRow: IntegerLiteralConvertible, space: NilLiteralConvertible, bitmapInfo: CGImageAlphaInfo)' to type 'IntegerLiteralConvertible' …
Run Code Online (Sandbox Code Playgroud)

xcode object ios cgcontextref swift

2
推荐指数
1
解决办法
2920
查看次数