繁体   English   中英

iOS Xamarin中的UIImage质量不好

[英]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图像。 我已经像这样添加了它们:

  • MyImage.png(100x100像素)
  • MyImage@2.png(150x150像素)
  • MyImage@3.png(200x200像素)

我不确定使用的是哪一种,但是在运行时检查图像时,大小为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM