『壹』 asp中如何將上傳的圖片縮小尺寸
ASP自動壓縮功能比較死板,壓縮出來的圖片也會變的大小不一。建議用ACDSEE之類的軟體進行百分比批量壓縮,這樣出來的效果要比ASP壓縮出來的高很多,而且圖片質量也不會失真。
『貳』 asp.net 將原圖用代碼自動壓縮成規定大小後上傳
/// <summary>
/// 生成縮略圖
/// </summary>
/// <param name="originalImagePath">源圖路徑(物理路徑)</param>
/// <param name="thumbnailPath">縮略圖路徑(物理路徑)</param>
/// <param name="width">縮略圖寬度</param>
/// <param name="height">縮略圖高度</param>
/// <param name="mode">生成縮略圖的方式</param>
public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
{
System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);
int towidth = width;
int toheight = height;
int x = 0;
int y = 0;
int ow = originalImage.Width;
int oh = originalImage.Height; switch (mode)
{
case "HW"://指定高寬縮放(可能變形)
break;
case "W"://指定寬,高按比例
toheight = originalImage.Height * width / originalImage.Width;
break;
case "H"://指定高,寬按比例
towidth = originalImage.Width * height / originalImage.Height;
break;
case "Cut"://指定高寬裁減(不變形)
if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight)
{
oh = originalImage.Height;
ow = originalImage.Height * towidth / toheight;
y = 0;
x = (originalImage.Width - ow) / 2;
}
else
{
ow = originalImage.Width;
oh = originalImage.Width * height / towidth;
x = 0;
y = (originalImage.Height - oh) / 2;
}
break;
default:
break;
} //新建一個bmp圖片
System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight); //新建一個畫板
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap); //設置高質量插值法
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; //設置高質量,低速度呈現平滑程度
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; //清空畫布並以透明背景色填充
g.Clear(System.Drawing.Color.Transparent); //在指定位置並且按指定大小繪制原圖片的指定部分
g.DrawImage(originalImage, new System.Drawing.Rectangle(0, 0, towidth, toheight),
new System.Drawing.Rectangle(x, y, ow, oh),
System.Drawing.GraphicsUnit.Pixel); try
{
//以jpg格式保存縮略圖
bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch (Exception e)
{
throw e;
}
finally
{
originalImage.Dispose();
bitmap.Dispose();
g.Dispose();
}
}
『叄』 如何讓asp自動壓縮圖片大小
float k;
k=Img.Width/Img.Height;
if(Img.Width>Img.Height)
{
Img.Width=500;Img.Height=Convert.ToInt32(Convert.ToSingle(500)/k);
}
else
{
Img.Height=500;Img.Width=Convert.ToInt32(Convert.ToSingle(500)*k);
}
『肆』 asp.net 如何將圖片縮小後再上傳。在不影響原圖的情況下。
按比例縮放,然後再上傳,計算按比例縮放後的寬和高,然後再生成,下面是我項目中的例子,希望對LZ有所幫助:
public class addpicture : LHPage
{
protected string ctrname = "";
protected string genthumb = "";
private void Page_Load(object sender, System.EventArgs e)
{
// 在此處放置用戶代碼以初始化頁面
if(!Utilities.CheckLogin())
{
Response.Write("<script language=\"javascript\">top.document.location=\"login.aspx\";</script>");
Response.End();
}
ctrname = Request["ctrname"];
if(ctrname == null)
ctrname = "";
genthumb = Request["genthumb"];
if(genthumb == null)
genthumb = "";
HttpPostedFile httpfile = Request.Files["postedfile"];
if(httpfile != null)
{
if(httpfile.ContentLength > 4028 * 1024)
return;
string sfileguid = Guid.NewGuid().ToString();
int iLastIndex = httpfile.FileName.LastIndexOf(".");
string sex = "";
if(iLastIndex >= 0)
sex = httpfile.FileName.Substring(iLastIndex);
sfileguid += sex;
DataTable dtsys = Utilities.ConfigInfo;
string allowedexs = "|" + dtsys.Rows[0]["AllowedExs"].ToString() + "|";
if(sex.Length > 0)
{
if(allowedexs.IndexOf("|" + sex.Substring(1).ToLower() + "|") < 0)
{
Response.Write("<script language=\"javascript\">alert('您不能上傳該類文件格式,請在系統設置中設置!');</script>");
return;
}
}
YTDateTime ytdtime = new YTDateTime();
ytdtime.dDateTime = DateTime.Now;
string savedir = ytdtime.sDate.Substring(0, 6);
if(!Directory.Exists(Server.MapPath(Utilities.UploadedFileDir + "/" + savedir)))
Directory.CreateDirectory(Server.MapPath(Utilities.UploadedFileDir + "/" + savedir));
using(FileStream fs = new FileStream(Server.MapPath(Utilities.UploadedFileDir + "/" + savedir) + "\\" + sfileguid, FileMode.Create, FileAccess.ReadWrite, FileShare.None))
{
byte [] btbuf = new byte[httpfile.InputStream.Length];
httpfile.InputStream.Read(btbuf, 0, btbuf.Length);
fs.Write(btbuf, 0, btbuf.Length);
}
if(genthumb == "yes")
{
//要生成縮略圖
ImageClip imgclip = new ImageClip();
imgclip.OpImage = Bitmap.FromFile(Server.MapPath(Utilities.UploadedFileDir + "/" + savedir) + "\\" + sfileguid);
Bitmap bmptmp = (Bitmap)imgclip.OpImage;
imgclip.Width = int.Parse(dtsys.Rows[0]["MaxThumbnailWidth"].ToString());
imgclip.Height = int.Parse(dtsys.Rows[0]["MaxThumbnailHeight"].ToString());
imgclip.Options = ImageClip.MODE_TRANSLATE | ImageClip.MODE_CONSTRAINBYWIDTH | ImageClip.MODE_CONSTRAINRATIO;
if(!imgclip.ExecuteTransfer())
{
Response.Write("<script language=\"javascript\">alert('生成縮略圖失敗!');</script>");
return;
}
string sguid = Guid.NewGuid().ToString();
imgclip.OpImage.Save(Server.MapPath(Utilities.UploadedFileDir + "/" + savedir) + "\\" + sguid + sex);
Response.Write("<script language=\"javascript\">parent.UpdateFile('" + savedir + "/" + sfileguid + "', '"+ctrname+"', '"+savedir + "/" + sguid + sex +"');</script>");
bmptmp.Dispose();
imgclip.OpImage.Dispose();
return;
}
if(ctrname.Length <= 0)
Response.Write("<script language=\"javascript\">parent.UpdateFile('" + savedir + "/" + sfileguid + "');</script>");
else
Response.Write("<script language=\"javascript\">parent.UpdateFile('" + savedir + "/" + sfileguid + "', '"+ctrname+"');</script>");
}
}
『伍』 asp網站上傳圖片自動壓縮圖片大小代碼,把以下代碼修改成能夠壓縮圖片的代碼。
要壓縮圖片大小的必須要有組件,就是伺服器要支持這個組件才可以。
下面介紹一個:
ASPJPEG是一款功能相當強大的圖象處理組件,用它可以輕松地做出圖片的縮略圖和為圖片加上水印功能。
實際怎麼樣我沒有用過這個組件不做評價,你可以網上找找。
『陸』 asp 實現圖片上傳的時候壓縮他
按比例壓縮圖片:
SmallImgFilet = "SmallImg-"&smallname&".jpg" '小圖片指定取名
If IsEmpty(SmallImgFile) then
'dim L as Single , H as Single
Set Jpeg = Server.CreateObject("Persits.Jpeg") '調用組件
Path = Server.MapPath("../") & "\" & BigImgFile '待縮小圖片路徑 放在根目錄 你可以制定文件夾 在../後面
Jpeg.Open Path '打開圖片
L = 120/80'縮略圖高與寬比 你如果只限制寬度就不用下面else的高度比例判斷 只按寬度的對應大圖比例縮小就可以了
H= jpeg.OriginalWidth/jpeg.OriginalHeight
If H > L Then
jpeg.Width = 120
jpeg.Height = (jpeg.OriginalHeight*120)/jpeg.OriginalWidth
Else
jpeg.Height = 80
jpeg.Width = (jpeg.OriginalWidth*80)/jpeg.OriginalHeight
End If
'保存圖片
Jpeg.Save Server.MapPath("../") & "\"&SmallImgFilet'&".jpg"
set Jpeg=nothing
end if
『柒』 asp 上傳圖片 壓縮體積
ASP的我不懂,不過圖片如果是BMP的可以壓縮,JPG的本身就是有損壓縮的,基本壓不動多少
『捌』 使用「化境ASP無組件上傳類」或是「風聲無組件上傳類」如何壓縮圖片
aspjpeg對,樓上說了,用aspjpeg。
Set Jpegppp = Server.CreateObject("Persits.Jpeg")
Jpegppp.Open FileName
Jpegppp.PreserveAspectRatio=true'等比縮放
Jpegppp.Interpolation=2
Jpegppp.Quality=100
Jpegppp.Width = 寬度
Jpegppp.crop 0,CInt((Jpegppp.Height-高度)/2),寬度,CInt((Jpegppp.Height-高度)/2)+高度
jpegppp.Sharpen 1, 120
Jpegppp.Save server.MapPath(strDir&""&file_numa&"2"&file_numab&fileEXT)
Jpegppp.close
set Jpegppp=nothing