我正在使用JCrop裁剪Image.如果我向用户显示实际图像,它工作正常.但是,如果我显示Resize Image而不是Actual,Image那么我将获得Co-ordinatesResize Image.
然后,我如何Image基于它裁剪?在这里,我正在通过ImageSaved的路径Image.
简而言之,如果是保存Image大小ie即715 * 350然后我在基于CSS的小尺寸弹出窗口中显示它.所以,我会得到Co-ordinates那么小的尺寸Image.我正在申请那些Co-ordinates主要的Image.
我的代码:
using (System.Drawing.Image OriginalImage = System.Drawing.Image.FromFile(Img))
{
using (System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(Width, Height))
{
bmp.SetResolution(OriginalImage.HorizontalResolution, OriginalImage.VerticalResolution);
using (System.Drawing.Graphics Graphic = System.Drawing.Graphics.FromImage(bmp))
{
Graphic.SmoothingMode = SmoothingMode.AntiAlias;
Graphic.InterpolationMode = InterpolationMode.HighQualityBicubic;
Graphic.PixelOffsetMode = PixelOffsetMode.HighQuality;
Graphic.DrawImage(OriginalImage, new System.Drawing.Rectangle(0, 0, Width, Height), X, Y, Width, Height, System.Drawing.GraphicsUnit.Pixel);
MemoryStream ms = new MemoryStream();
bmp.Save(ms, OriginalImage.RawFormat);
ms.Close();
ms.Flush();
ms.Dispose();
return ms.GetBuffer();
}
}
}
Run Code Online (Sandbox Code Playgroud)
您显示的代码用于调整大小,而不是用于裁剪(在Graphic.DrawImage()通话中,您不关心裁剪坐标,只需应用目标宽度/高度)
要裁剪图像,您只需使用该Bitmap.Clone()方法即可.只需将您从中提取的裁剪坐标传递给它JCrop.(cropzone在以下示例中)
public static async Task CropImage()
{
var client = new WebClient();
var sourceimg = new Uri(@"http://logonoid.com/images/stack-overflow-logo.png");
var destination = new FileInfo(Path.Combine(Directory.GetCurrentDirectory(), "logoCropped.png"));
if (destination.Exists)
destination.Delete();
using (Stream sourceStream = await client.OpenReadTaskAsync(sourceimg))
{
using (Bitmap source = new Bitmap(sourceStream))
{
Rectangle cropzone = new Rectangle(0, 0, 256, 256);
using (Bitmap croppedBitmap = source.Clone(cropzone, source.PixelFormat))
{
croppedBitmap.Save(destination.FullName, ImageFormat.Png);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
关于您的代码的一些建议:
SmoothingMode,InterpolationMode,PixelOffsetMode参数是没用在这里.MemoryStream,你最好在using声明中使用它.它避免了手动调用Close()和Dispose(),并保证它们被称为无论发生什么情况.关于这个Flush()方法,它在课堂上什么都不做MemoryStream.| 归档时间: |
|
| 查看次数: |
541 次 |
| 最近记录: |