gpt4 book ai didi

asp.net - 如何在上传时压缩照片的高度和宽度[asp.net]

转载 作者:行者123 更新时间:2023-12-02 16:14:04 25 4
gpt4 key购买 nike

我想在上传期间将上传的照片压缩为高度=600px & 宽度= 800px尺寸[仅当实际尺寸大于此]。照片保存在sql上server2008 带有数据类型图像!

 public byte[] imagetoByte()
{
if (FileUpload1.HasFile)
{
int imageFilelength = FileUpload1.PostedFile.ContentLength;
byte[] ph = new byte[imageFilelength];
HttpPostedFile ima = FileUpload1.PostedFile;
MemoryStream memoryStream = new MemoryStream();
ima.InputStream.Read(ph, 0, imageFilelength);
return ph;
}
else
{
return null;
}

}

函数用于图片上传!!有人帮我解决这个问题..

最佳答案

可能的解决方案可以是:

int imageFilelength = FileUpload1.PostedFile.ContentLength;
byte[] ph = new byte[imageFilelength];

MemoryStream ms = new MemoryStream(ph);
Image img = System.Drawing.Image.FromStream(ms);

//Call function to resize
Image ResizedImage = RezizeImage(img, 500, 500);

//Save Image
ResizedImage.Save("IMAGELOCATION.png", System.Drawing.Imaging.ImageFormat.Gif);
<小时/>
private Image RezizeImage(Image img, int maxWidth, int maxHeight)
{
if(img.Height < maxHeight && img.Width < maxWidth) return img;
using (img)
{
Double xRatio = (double)img.Width / maxWidth;
Double yRatio = (double)img.Height / maxHeight;
Double ratio = Math.Max(xRatio, yRatio);
int nnx = (int)Math.Floor(img.Width / ratio);
int nny = (int)Math.Floor(img.Height / ratio);
Bitmap cpy = new Bitmap(nnx, nny, PixelFormat.Format32bppArgb);
using (Graphics gr = Graphics.FromImage(cpy))
{
gr.Clear(Color.Transparent);

// This is said to give best quality when resizing images
gr.InterpolationMode = InterpolationMode.HighQualityBicubic;

gr.DrawImage(img,
new Rectangle(0, 0, nnx, nny),
new Rectangle(0, 0, img.Width, img.Height),
GraphicsUnit.Pixel);
}
return cpy;
}

}

关于asp.net - 如何在上传时压缩照片的高度和宽度[asp.net],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37850974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com