uniapp アプレットは画像をアップロードして圧縮します

uniapp アプレットは画像をアップロードして圧縮します

導入

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 }
}

この変更は、現在の画像が回転されているかどうかを判断することです。

終わり

プラグインを使用して独自のパッケージを準備したくない場合は、画像情報を取得する際の回転の問題にも注意する必要があります。写真の回転問題に注意!

この記事があなたのお役に立てれば幸いです、間違いがあればアドバイスをいただければ幸いです。

おすすめ

転載: blog.csdn.net/m0_64344940/article/details/125065006