public ActionResult UploadImge(string serverId) { var headPath = "/UploadImage/" + DateTime.Now.ToString("yyyyMM"); string AbsoluteFilePath = Server.M... ...
public ActionResult UploadImge(string serverId) { var headPath = "/UploadImage/" + DateTime.Now.ToString("yyyyMM"); string AbsoluteFilePath = Server.MapPath(headPath); if (!Directory.Exists(AbsoluteFilePath)) { Directory.CreateDirectory(AbsoluteFilePath); } string imgPath = headPath + "/" + DateTime.Now.ToString("yyyyMMddHHmm") + serverId + ".jpg";//原圖 string AbsolutePath = Server.MapPath(imgPath); WeChatClient.SaveMultimedia(serverId, AbsolutePath); return Json(imgPath); } public ActionResult UploadImge2(string serverId) { var headPath = "/UploadImage/" + DateTime.Now.ToString("yyyyMM"); string AbsoluteFilePath = Server.MapPath(headPath); if (!Directory.Exists(AbsoluteFilePath)) { Directory.CreateDirectory(AbsoluteFilePath); } string imgPath = headPath + "/" + DateTime.Now.ToString("yyyyMMddHHmm") + serverId + ".jpg"; string AbsolutePath = Server.MapPath(imgPath); WeChatClient.SaveMultimedia(serverId, AbsolutePath); CommonUtil.MakeThumbnail(AbsolutePath, AbsolutePath.Replace(".jpg", "_2.jpg"),3, 4);//以3:4比例裁剪 return Json(imgPath); } public ActionResult UploadImge3(string serverId) { var headPath = "/UploadImage/" + DateTime.Now.ToString("yyyyMM"); string AbsoluteFilePath = Server.MapPath(headPath); if (!Directory.Exists(AbsoluteFilePath)) { Directory.CreateDirectory(AbsoluteFilePath); } string imgPath = headPath + "/" + DateTime.Now.ToString("yyyyMMddHHmm") + serverId + ".jpg"; string AbsolutePath = Server.MapPath(imgPath); WeChatClient.SaveMultimedia(serverId, AbsolutePath); CommonUtil.MakeThumbnail(AbsolutePath, AbsolutePath.Replace(".jpg", "_3.jpg"), 4, 3);//以4:3比例裁剪圖片 return Json(imgPath); }
public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int bw = 4, int bh = 3) { try { Image originalImage = Image.FromFile(originalImagePath); var bl = originalImage.Height * 1.00 / originalImage.Width; int orgWith, orgHeight, startY = 0, startX = 0, newWith, newHeight = 0; var bd = bh * 1.00 / bw; if (bl > bd) { orgWith = originalImage.Width; orgHeight = (int)(originalImage.Width * bh / bw); startY = (originalImage.Height - orgHeight) / 2; newWith = orgWith; if (newWith > 720) { newWith = 720; } newHeight = (int)(newWith * bh / bw); } else { orgWith = originalImage.Height * bw / bh; orgHeight = originalImage.Height; startX = (originalImage.Width - orgWith) / 2; newWith = orgWith; if (newWith > 720) { newWith = 720; } newHeight = (int)(newWith * bh / bw); } Bitmap destBitmap = new Bitmap(newWith, newHeight);//目標圖 Rectangle destRect = new Rectangle(0, 0, newWith, newHeight);//矩形容器 Rectangle srcRect = new Rectangle(startX, startY, orgWith, orgHeight); var g = Graphics.FromImage(destBitmap); //設置高質量插值法 g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; //設置高質量,低速度呈現平滑程度 g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; //清空畫布並以透明背景色填充 g.Clear(Color.Transparent); try { g.DrawImage(originalImage, destRect, srcRect, GraphicsUnit.Pixel); destBitmap.Save(thumbnailPath, originalImage.RawFormat); } catch (System.Exception e) { } finally { originalImage.Dispose(); destBitmap.Dispose(); g.Dispose(); } } catch (Exception) { } } }
public static void SaveMultimedia(string MEDIA_ID, string savepath) { string file = string.Empty; string strpath = string.Empty; string stUrl = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=" + MyToken.Token + "&media_id=" + MEDIA_ID; HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(stUrl); req.Method = "GET"; using (WebResponse wr = req.GetResponse()) { HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse(); strpath = myResponse.ResponseUri.ToString(); WebClient mywebclient = new WebClient(); try { mywebclient.DownloadFile(strpath, savepath); } catch (Exception ex) { savepath = ex.ToString(); } } }
var uploadNum = 0; wx.config({ debug: false, // 開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會列印。 appId: '********', // 必填,公眾號的唯一標識 timestamp: '@(ViewBag.timestamp)', // 必填,生成簽名的時間戳 nonceStr: '@(ViewBag.nonceStr)', // 必填,生成簽名的隨機串 signature: '@(ViewBag.signature)',// 必填,簽名,見附錄1 jsApiList: ['chooseImage', 'previewImage', 'uploadImage', 'downloadImage'] // 必填,需要使用的JS介面列表,所有JS介面列表見附錄2 }); function uploadImge() { var ttnum = 5 - uploadNum; wx.chooseImage({ count: ttnum, // 預設9 sizeType: ['compressed'], // 可以指定是原圖還是壓縮圖,預設二者都有 sourceType: ['album', 'camera'], // 可以指定來源是相冊還是相機,預設二者都有 success: function (res) { var localIds = res.localIds; // 返回選定照片的本地ID列表,localId可以作為img標簽的src屬性顯示圖片 uploadImg(localIds, 0); } }); } function uploadImg(localIds, num) { if (localIds.length <= num) { return; } var localId = localIds[num]; wx.uploadImage({ localId: localId, // 需要上傳的圖片的本地ID,由chooseImage介面獲得 isShowProgressTips: 1, // 預設為1,顯示進度提示 success: function (sres) { var serverId = sres.serverId; // 返回圖片的伺服器端ID $.post("/WeiXin/Home/UploadImge3", { serverId: serverId }, function (data) { var picPath = $("#PicPath").val(); if (picPath == "") { picPath = data; } else { picPath = picPath + "," + data; } $("#PicPath").val(picPath); var temphtml = ""; if (window.__wxjs_is_wkwebview) { wx.getLocalImgData({ localId: localId, // 圖片的localID success: function (res) { var localData = res.localData; // localData是圖片的base64數據,可以用img標簽顯示 temphtml = '<div class="col-xs-6"><img src="/Content/img/叉-m.png" style="width:20px;height:20px;position:absolute;z-index:2;right:15px;" onclick="delimg(this,\'' + data + '\')"/><img src="' + localData + '" class="picimg" style="z-index:1;position:absolute"/>'; $("#picdiv").before(temphtml); uploadNum = uploadNum + 1; if (uploadNum >= 5) { $("#picdiv").hide(); } uploadImg(localIds, num + 1) } }); } else { temphtml = '<div class="col-xs-6"><img src="/Content/img/叉-m.png" style="width:20px;height:20px;position:absolute;z-index:2;right:15px;" onclick="delimg(this,\'' + data + '\')"/><img src="' + localId + '" class="picimg" style="z-index:1;position:absolute"/>'; $("#picdiv").before(temphtml); uploadNum = uploadNum + 1; if (uploadNum >= 5) { $("#picdiv").hide(); } uploadImg(localIds, num + 1) } }) } }); }