導入
uniapp アプレット プロジェクトでは、ユーザーがアップロードする前に画像を圧縮して oss にアップロードする必要があるため、uniapp プラグイン マーケットでプラグインを見つけて修正しました。
使用するプラグイン
プラグインの問題
画像を圧縮する際、アップロードした画像の幅が高さより小さい場合、画像が回転してしまうことが分かりましたが、uni.getImageInfo()で画像情報を取得すると最大値が幅になるため、圧縮後の画像は回転してしまいます。変形する。
解決
プラグイン マーケットにプロジェクトをインポートすると、プロジェクトのコンポーネント ディレクトリに w-compress フォルダーが表示されます。w-compress の compress.js ファイルの calcImageSize メソッドに次のコードを追加すると、アップロードの問題が解決されます。高さよりも幅が小さい画像。後で変形が発生します。
// 图片分辨率压缩
const calcImageSize = (res, pixels) => {
let imgW, imgH
imgW = res.width
imgH = res.height
// 此处为添加的判断
if (res.orientation === 'left' || res.orientation === 'right') {
imgW = res.height
imgH = res.width
}
let ratio
if((ratio = imgW * imgH / pixels) > 1) {
ratio = Math.sqrt(ratio)
imgW = parseInt(imgW / ratio)
imgH = parseInt(imgH / ratio)
} else {
ratio = 1
}
return {
imgW, imgH }
}
この変更は、現在の画像が回転されているかどうかを判断することです。
終わり
プラグインを使用して独自のパッケージを準備したくない場合は、画像情報を取得する際の回転の問題にも注意する必要があります。写真の回転問題に注意!!!
この記事があなたのお役に立てれば幸いです、間違いがあればアドバイスをいただければ幸いです。