IOS绘制一个简单的图像变得模糊使用Xamarin C#

前端之家收集整理的这篇文章主要介绍了IOS绘制一个简单的图像变得模糊使用Xamarin C#前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发Xamarin,并希望在其中绘制一个带有“CIRCLE”文本的简单圆圈,并在UI ImageView中显示该图像.问题是圆圈和文字显得非常模糊.我已经阅读了一些有关子像素的内容,但我认为这不是我的问题.

这是模糊的图像和代码,希望有人有一些想法:)

  1. UIGraphics.BeginImageContext (new SizeF(150,150));
  2. var context = UIGraphics.GetCurrentContext ();
  3.  
  4. var content = "CIRCLE";
  5. var font = UIFont.SystemFontOfSize (16);
  6.  
  7. const float width = 150;
  8. const float height = 150;
  9.  
  10. context.SetFillColorWithColor (UIColor.Red.CGColor);
  11. context.FillEllipseInRect (new RectangleF (0,width,height));
  12.  
  13. var contentString = new NSString (content);
  14. var contentSize = contentString.StringSize (font);
  15.  
  16. var rect = new RectangleF (0,((height - contentSize.Height) / 2) + 0,contentSize.Height);
  17.  
  18. context.SetFillColorWithColor (UIColor.White.CGColor);
  19. new NSString (content).DrawString (rect,font,UILineBreakMode.WordWrap,UITextAlignment.Center);
  20.  
  21. var image = UIGraphics.GetImageFromCurrentImageContext ();
  22. imageView.Image = image;

解决方法

它模糊的原因是因为它被调整了大小.该位图不是150×150(就像你创建的上下文一样),它是333×317像素.

这可能是因为imageView正在缩放它的图像(没有源代码)或因为像素加倍(用于视网膜显示).在后一种情况下,您真正​​想要使用的是:

  1. UIGraphics.BeginImageContextWithOptions (size,false,0);

将(使用0)自动使用正确的视网膜(或不显示)缩放因子 – 并且在所有类型的设备上看起来都很清晰(而不是过大).

猜你在找的iOS相关文章