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