当前位置:首页 » 文件传输 » asp上传照片压缩
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

asp上传照片压缩

发布时间: 2022-07-27 21:56:58

‘壹’ 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