【发布时间】:2011-02-26 19:49:24
【问题描述】:
我正在尝试在 asp.net 中重新缩放上传的 jpeg
所以我走了:
Image original = Image.FromStream(myPostedFile.InputStream);
int w=original.Width, h=original.Height;
using(Graphics g = Graphics.FromImage(original))
{
g.ScaleTransform(0.5f, 0.5f); ... // e.g.
using (Bitmap done = new Bitmap(w, h, g))
{
done.Save( Server.MapPath(saveas), ImageFormat.Jpeg );
//saves blank black, though with correct width and height
}
}
无论我给它什么文件,这都会保存一个原始的黑色 jpeg。
虽然如果我将输入图像流立即输入done 位图,它会重新压缩并保存它,例如:
Image original = Image.FromStream(myPostedFile.InputStream);
using (Bitmap done = new Bitmap(original))
{
done.Save( Server.MapPath(saveas), ImageFormat.Jpeg );
}
我必须用 g 施展魔法吗?
更新: 我试过了:
Image original = Image.FromStream(fstream);
int w=original.Width, h=original.Height;
using(Bitmap b = new Bitmap(original)) //also tried new Bitmap(w,h)
using (Graphics g = Graphics.FromImage(b))
{
g.DrawImage(original, 0, 0, w, h); //also tried g.DrawImage(b, 0, 0, w, h)
using (Bitmap done = new Bitmap(w, h, g))
{
done.Save( Server.MapPath(saveas), ImageFormat.Jpeg );
}
}
同样的故事 - 正确尺寸的纯黑色
【问题讨论】:
标签: asp.net graphics upload system.drawing rescale