【发布时间】:2012-12-20 17:02:43
【问题描述】:
我有两张图片。第一个 (avatar) 是 640x640,第二个 (like) 是 21x20。
当我试图先画第二个时,我明白了,但质量非常低。
代码如下:
var bounds = targeImageView.Bounds;
CGImageAlphaInfo alphaInfo = CGImageAlphaInfo.PremultipliedLast;
CGColorSpace colorSpaceInfo = CGColorSpace.CreateDeviceRGB ();
CGBitmapContext resultBitmap = new CGBitmapContext (IntPtr.Zero, (int)bounds.Width, (int)bounds.Height, 8, 4 * (int)bounds.Width, colorSpaceInfo, alphaInfo);
resultBitmap.DrawImage (bounds, avatar.CGImage);
var likeY = 0;
var likeX = 0;
var likeHeight = (float)Math.Floor (bounds.Height / 2);
var likeWidth = likeHeight;
resultBitmap.DrawImage (new RectangleF (likeX, likeY, likeWidth, likeHeight), like.CGImage);
targetImageView.Image = UIImage.FromImage (resultBitmap.ToImage ());
这是同一图像视图上的avatar图片,但没有上面的代码,只是imageView.Image = avatar;
这里是相同的,但在绘制之后。
【问题讨论】:
-
您附加的位图太小,即我看不出它们之间的质量差异。你能把它们放大吗?和/或描述质量问题?例如会不会是第二个没有使用视网膜(代替双像素)?
-
请仔细看,有区别。即使没有单独打开它,我也可以在那个帖子中看到它。是的,考虑到视网膜,那就是 iphone 视网膜模拟器。
-
@poupou:左图中人物的头发差异最为明显。
标签: iphone ios xamarin.ios core-graphics