簡體   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