日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用七牛图片遇到的图片方向翻转问题

發(fā)布時(shí)間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用七牛图片遇到的图片方向翻转问题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

需求場(chǎng)景:
移動(dòng)端項(xiàng)目,用戶上傳圖片,然后前端進(jìn)行濾鏡處理并加入文字在圖片上,返回給用戶處理過后的圖片,結(jié)果頁可分享。

  • 最開始的想法是通過canvas處理本地圖片,然后將canvas轉(zhuǎn)成圖片,再把轉(zhuǎn)換的圖片上傳到七牛返回給用戶。這里的問題是轉(zhuǎn)換后的圖片是base64格式的,不方便存儲(chǔ)。所以放棄此方案。

  • 第二個(gè)方案,用戶上傳圖片之后,前端立即將圖片上傳到七牛,再用canvas處理過后返回給用戶。
    過程中遇到了兩個(gè)問題:1.canvas載入七牛圖片的時(shí)候,有的圖片方向被翻轉(zhuǎn)了。2.canvas載入非本地(非相同域名下)圖片失敗,因?yàn)榭缬颉?/p>

解決辦法:設(shè)置img.crossOrigin和圖片鏈接參數(shù)

'FileUploaded': function(up, file, info) {var domain = up.getOption('domain');var res = eval('(' + info + ')');var sourceLink = domain + res.key;//獲取上傳文件的鏈接地址//do somethingvar canvas = document.getElementById('mycanvas');var img = new Image();img.onload = function(){//do somethingvar canHeight = $(".img").height();var canWidth = canHeight*(img.width/img.height);var ctx = canvas.getContext("2d");ctx.clearRect(0, 0, canvas.width, canvas.height);canvas.width = canWidth;canvas.height = canHeight;ctx.drawImage(img, 0, 0, canWidth, canHeight);};img.crossOrigin = ''; //讓canvas可以正常載入跨域圖片img.src = sourceLink+'?imageMogr2/auto-orient'; //imageMogr2是圖片高級(jí)處理,參數(shù)auto-orient自動(dòng)旋正 },

上面貼的是圖片上傳完成后執(zhí)行的代碼,需要注意的是img.crossOrigin和img.src這兩個(gè)屬性要寫在img.onload的后面。
參考文檔:
http://developer.qiniu.com/co...
https://segmentfault.com/q/10...

總結(jié)

以上是生活随笔為你收集整理的使用七牛图片遇到的图片方向翻转问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。