一个客户的网站想实现功能:
利用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