【问题标题】:How to place the `UIColor` on `UIImage` at particular (X,Y) position?如何将“UIColor”放在“UIImage”的特定(X,Y)位置?
【发布时间】:2016-04-07 06:27:32
【问题描述】:

我正在尝试将 UIColor 放置在 UIImage 的特定 (X,Y) 位置上,

但拿不到,

这里,我的代码如下所示,

下面的方法从UIImage的特定(X,Y)位置返回UIColor

- (UIColor *)isWallPixel:(UIImage *)image xCoordinate:(int)x yCoordinate:(int)y {

   CFDataRef pixelData = CGDataProviderCopyData(CGImageGetDataProvider(image.CGImage));
   const UInt8* data = CFDataGetBytePtr(pixelData);

   int pixelInfo = ((image.size.width  * y) + x ) * 4; // The image is png

   UInt8 red = data[pixelInfo];         // If you need this info, enable it
   UInt8 green = data[(pixelInfo + 1)]; // If you need this info, enable it
   UInt8 blue = data[pixelInfo + 2];    // If you need this info, enable it
   UInt8 alpha = data[pixelInfo + 3];     // I need only this info for my maze game
   CFRelease(pixelData);

   UIColor* color = [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:alpha/255.0f]; // The

  return color;
}


//Original Image, I get image pixels from this image.
UIImage* image = [UIImage imageNamed:@"plus.png"];

//Need convert Image
UIImage *imagedata = [[UIImage alloc]init];

//size of the original image
int Width = image.size.width;
int height = image.size.height;

//need to get this size of another blank image
CGRect rect = CGRectMake(0.0f, 0.0f, Width, height);

UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();

for (int i = 0; i <Width; i++) {
    for (int j = 0; j < height; j++) {

       //Here I got the Image pixel color from below highlighted method
        UIColor *colordatra = [self isWallPixel:image xCoordinate:i yCoordinate:j];
        CGContextSetFillColorWithColor(context, [colordatra CGColor]);

        rect.origin.x = i;
        rect.origin.y = j;
        CGContextDrawImage(context, rect, imagedata.CGImage);
        imagedata = UIGraphicsGetImageFromCurrentImageContext();
    }
}

UIGraphicsEndImageContext();

请注意,我想要从特定位置获取 UIColor 并将 UIColor 放置在同一位置的另一个空白图像上的功能。

使用上面的代码我无法得到这个,请让我知道我在哪里做错了。

希望得到好评,

提前致谢。

【问题讨论】:

    标签: ios objective-c iphone cgcontext cgcontextdrawimage


    【解决方案1】:

    通过使用 uiView 你可以这样做。实际上你得到了 x,y,width 和 height

    uiview *view = [uiview alloc]initwithframe:CGRectMake(x,y,width,height);
    view.backgroundcolor =[UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:alpha/255.0f];
    [self.YourImageView addsubview:view];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-23
      相关资源
      最近更新 更多