裁剪图像
本文关键字:图像 裁剪 | 更新日期: 2023-09-27 18:19:31
我有一个要求,即裁剪图像并将其保存在DB中。当用户上传他/她的照片时,首先由该原始图像制作大尺寸图像。然后裁剪大图像并将其保存为拇指图像。因此有三种尺寸:原始、大(需要用户裁剪)、拇指图像。
所以我在互联网上找到了一个控件来进行这种裁剪。http://webcropimage.codeplex.com/releases/view这是用于制作原始的大图像的代码
public static byte[] MakeThumb(byte[] fullsize, int maxwidth)
{
Image iOriginal, iThumb;
double scale;
iOriginal = Image.FromStream(new MemoryStream(fullsize));
if (iOriginal.Width > maxwidth)
{
scale = iOriginal.Width / maxwidth;
int newheight = Convert.ToInt32(iOriginal.Height / scale);
iThumb = new Bitmap(iOriginal, maxwidth, newheight);
MemoryStream m = new MemoryStream();
iThumb.Save(m, System.Drawing.Imaging.ImageFormat.Jpeg);
return m.GetBuffer();
}
else
{
return fullsize;
}
}
生成大图像后,需要对其进行裁剪。这是我用来裁剪图像的代码.dll
<asp:Button ID="btnCrop" runat="server" Text="Crop" onclick="btnCrop_Click" />
<cs:CropImage ID="wci1" runat="server"
Image="Image1"
MinSize="100,100"
MaxSize="150,150"
W="150"
H="150"
/>
protected void btnCrop_Click(object sender, EventArgs e)
{
/* thats the method to crop and save the image.*/
wci1.Crop(Server.MapPath("images/cropped.jpg"));
/*
this part is just to show the image after its been cropped and saved! so focus on just the code above.
*/
Image img = new Image();
img.ImageUrl = "images/cropped.jpg?rnd=" + (new Random()).Next(); // added random for caching issue.
this.Controls.Add(img);
}
wci1.Crop(Server.MapPath("images/crupt.jpg"))以images/cropped.jpg为参数。我应该如何修改代码,使其使用大图像而不是"images/cutted.jpg"我的意思是:wci1.Crop(Server.MapPath(largeimage).
提前谢谢Sun
将大版本保存到磁盘,然后在方法中引用它。
然后你可以直接使用
File.IO.Delete
之后将其移除。