从路径中获取图像缩略图
Get image thumbnail from the path
在我的 xamarin.mac 应用程序中,我使用 SQLite 保存数据库,个人资料图片也保存在数据库中,但我在处理大图像时遇到问题(例如. 大小 4 MB), 我只需要在上传时保存照片的缩略图 :
imgProfilePicture.Image = new NSImage (path);
Byte [] bytes = System.IO.File.ReadAllBytes (path);
_profilePic = Convert.ToBase64String (bytes);
我将 base64 字符串保存在数据库中。另外,here 是 C# 中的简单解决方案:
Image image = Image.FromFile(fileName);
Image thumb = image.GetThumbnailImage(120, 120, ()=>false, IntPtr.Zero);
thumb.Save(Path.ChangeExtension(fileName, "thumb"));
我需要这样的东西,需要在不裁剪的情况下调整图像大小
NSImage baseImage = new NSImage ("original.jpg", false);
NSImage tinyImage = new NSImage (new CoreGraphics.CGSize (32, 32));
tinyImage.LockFocus ();
baseImage.DrawInRect (new CoreGraphics.CGRect (0, 0, 32, 32), new CoreGraphics.CGRect (0, 0, baseImage.Size.Width, baseImage.Size.Height), NSCompositingOperation.Copy, 1.0f);
tinyImage.UnlockFocus ();
NSBitmapImageRep rep = new NSBitmapImageRep (tinyImage.AsTiff ());
NSData data = rep.RepresentationUsingTypeProperties (NSBitmapImageFileType.Jpeg);
data.Save ("tiny.jpg", true);
其中 转换为 C#
在我的 xamarin.mac 应用程序中,我使用 SQLite 保存数据库,个人资料图片也保存在数据库中,但我在处理大图像时遇到问题(例如. 大小 4 MB), 我只需要在上传时保存照片的缩略图 :
imgProfilePicture.Image = new NSImage (path);
Byte [] bytes = System.IO.File.ReadAllBytes (path);
_profilePic = Convert.ToBase64String (bytes);
我将 base64 字符串保存在数据库中。另外,here 是 C# 中的简单解决方案:
Image image = Image.FromFile(fileName);
Image thumb = image.GetThumbnailImage(120, 120, ()=>false, IntPtr.Zero);
thumb.Save(Path.ChangeExtension(fileName, "thumb"));
我需要这样的东西,需要在不裁剪的情况下调整图像大小
NSImage baseImage = new NSImage ("original.jpg", false);
NSImage tinyImage = new NSImage (new CoreGraphics.CGSize (32, 32));
tinyImage.LockFocus ();
baseImage.DrawInRect (new CoreGraphics.CGRect (0, 0, 32, 32), new CoreGraphics.CGRect (0, 0, baseImage.Size.Width, baseImage.Size.Height), NSCompositingOperation.Copy, 1.0f);
tinyImage.UnlockFocus ();
NSBitmapImageRep rep = new NSBitmapImageRep (tinyImage.AsTiff ());
NSData data = rep.RepresentationUsingTypeProperties (NSBitmapImageFileType.Jpeg);
data.Save ("tiny.jpg", true);
其中 转换为 C#