一个客户的网站想实现功能:
利用asp上传图片,选择完成图片在前端进行裁剪,因为客户上传的照片有可能是不规则的大小,所以需要进行统一的尺寸裁剪,asp裁剪图片后上传到服务器,再次进行压缩,将图片压缩成两张,一张是200*150大小,另一张是640*640大小,做为一张大图和一张小图,把文件名写入数据库。
根据客户提出的asp上传照片并裁剪,我给写了下面的代码,在浏览器前端上传,然后提示裁剪,选择自已想要的区域名,确定上传,服务器端保存入库,此代码我觉得有人会有用,所以发布出来,供大家学习交流:
If InStr(s,"base64,") > 0 Then
s = Mid(s,InStr(s,"base64,")+7)
End If
Set b64 = Server.CreateObject("Msxml2.DOMDocument").createElement("a")
Set Stream = Server.CreateObject("ADODB.Stream")
b64.dataType = "bin.base64"
b64.Text = s
With Stream
.Type = 1
.Open
.Write b64.nodeTypedValue
.SaveToFile Server.MapPath(bigFolder & f),2
.Close
End With
Set Stream = Nothing
Set b64 = Nothing
'response.End()'如果此时停止程序运行那么得到的图片就是没有压缩过的图片
Set Jpeg = Server.CreateObject("Persits.Jpeg")
With Jpeg
.Open Server.MapPath(bigFolder & f)
'缩略图
.Width = 96
.Height = 96
.Sharpen 1, 130 '//设定锐化效果
.Quality = 100'图片压缩质量最佳为100,想压的小点就设80或是70或再小
.Save Server.MapPath(smallFolder & f)'保存路径
End With
Set Jpeg = Nothing
Set Jpeg = Server.CreateObject("Persits.Jpeg")
With Jpeg
.Open Server.MapPath(bigFolder & f)
'大图
.Width = 640
.Height = 640
.Sharpen 1, 130 '//设定锐化效果
.Quality = 100'图片压缩质量最佳为100,想压的小点就设80或是70或再小
.Save Server.MapPath(bigFolder & f)'保存路径
End With
Set Jpeg = Nothing
base64_img = f