[英]UIImage bad quality in iOS Xamarin
我一直在这里使用代码向UIImage添加一些文本,但是图像的质量真的很差。 我将代码范围缩小了很多:
public UIImage EditImage(UIImage myImage)
{
using (CGBitmapContext ctx = new CGBitmapContext(IntPtr.Zero, 75, 75, 8, 4 * 75, CGColorSpace.CreateDeviceRGB(), CGImageAlphaInfo.PremultipliedFirst))
{
ctx.DrawImage(new CGRect(0, 0, 75, 75), myImage.CGImage);
return UIImage.FromImage(ctx.ToImage());
}
}
MyImage是PNG图像。 我已经像这样添加了它们:
我不确定使用的是哪一种,但是在运行时检查图像时,大小为75x75 nint(本机int)。 这就是为什么我将CGBitmapContext的高度和宽度设置为75的原因。
我的问题是通过此函数处理myImage后,质量会变得很差。 如果我跳过此过程而仅使用myImage,则质量非常好,但是我需要CGBitmapContext将一些文本添加到图像。
有谁知道导致质量下降的原因,以及如何解决? 作为记录,我正在iPhone 6S上进行测试。
您有多种误解。
让我们从图像尺寸开始。 如果您的基本图像为100x100,则@ 2x版本应为200x200,因为它是分辨率的两倍。 按照此架构,您的@ 3x应该为300x300。 操作系统将根据设备的功能选择合适的操作系统。 对于6S,取决于您如何加载图像,它应该为@ 2x。
让我们继续创建CGBitmapContext的方式。 代码源完全包含您所需要的内容,但是您更改了它以固定值,现在想知道为什么图像为75x75。 糟糕的质量是由此而来的,因为系统现在正在调整原始图像的大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.