gpt4 book ai didi

IOS:屏蔽图像以考虑视网膜比例因子

转载 作者:可可西里 更新时间:2023-11-01 03:41:59 24 4
gpt4 key购买 nike

我想通过传递另一张图片作为 mask 来遮盖一张图片。我能够屏蔽图像,但生成的图像看起来不太好。它的边界参差不齐。

我猜这个问题与视网膜图形有关。两个图像的比例属性不同:

  1. 我要屏蔽的图像的比例值为 1。该图像的分辨率通常大于 1000x1000 像素。
  2. 我想要根据其生成的图像(只有黑白颜色的图像)的比例值为 2。该图像的分辨率通常为 300x300 像素。

生成的图像的比例值为 1。

我使用的代码是:

+ (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {

CGImageRef maskRef = maskImage.CGImage;

CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);


CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);
CGImageRelease(mask);
UIImage *maskedImage = [UIImage imageWithCGImage:masked ];
CGImageRelease(masked);
return maskedImage;
}

如何获得遵循视网膜比例尺的蒙版图像?

最佳答案

我遇到了同样的问题。这条线似乎忽略了比例因子。

UIImage *maskedImage = [UIImage imageWithCGImage:masked];

所以你应该自己画图像。将其替换为以下内容:

UIGraphicsBeginImageContextWithOptions(image.size, NO, 0.0);

CGContextRef context = UIGraphicsGetCurrentContext();

CGRect rect = CGRectMake(0, 0, image.size.width, image.size.height);

CGContextDrawImage(context, rect, masked);

UIImage * maskedImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

对我来说效果很好。

编辑

UIImage * maskedImage = [UIImage imageWithCGImage:masked 
scale:[[UIScreen mainScreen] scale]
orientation:UIImageOrientationUp];

关于IOS:屏蔽图像以考虑视网膜比例因子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17448102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com