一個客戶的網站想實現功能:
利用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
