警告バージョン 3.0.0 以降、このライブラリは
react-native-image-resizer
から@bam.tech/react-native-image-resizer
に移動されました。
バージョン3.0.0
以降、このパッケージはすぐに使用できる新しいアーキテクチャ (ターボ モジュール) をサポートしています。旧製品とのレトロ互換性もあります。
yarn add @bam.tech/react-native-image-resizer
cd ios && pod install
yarn add [email protected]
cd ios && pod install
注: 最新バージョンの React Native では、Android での Gradle ビルド中にエラーが発生する可能性があります ( com.android.dex.DexException: Multiple dex files define Landroid/support/v7/appcompat/R$anim
)。これを修正するには、 cd android && ./gradlew clean
実行します。
Android 用マニュアルリンク情報: リンク
import ImageResizer from '@bam.tech/react-native-image-resizer' ;
ImageResizer . createResizedImage (
path ,
maxWidth ,
maxHeight ,
compressFormat ,
quality ,
rotation ,
outputPath
)
. then ( ( response ) => {
// response.uri is the URI of the new image that can now be displayed, uploaded...
// response.path is the path of the new image
// response.name is the name of the new image with the extension
// response.size is the size of the new image
} )
. catch ( ( err ) => {
// Oops, something went wrong. Check that the filename is correct and
// inspect err to get more details.
} ) ;
基本的なサンプル アプリは、 example
フォルダーにあります。このモジュールを使用して、カメラ ロールの写真のサイズを変更します。
createResizedImage (
/**
* uri parameter accepts`path` or `uri`.
* This property has been tested with the output of @bam.tech/react-native-image-picker,
* react-native-vision-camera, @react-native-camera-roll/camera-roll and http link
**/
uri ,
maxWidth ,
maxHeight ,
compressFormat ,
quality ,
( rotation = 0 ) ,
outputPath ,
( keepMeta = false ) ,
( options = { } )
) ; // Returns a Promise
Promise は、新しいファイルのpath
、 uri
、 name
、 size
(バイト)、 width
(ピクセル)、およびheight
を含むオブジェクトで解決されます。 URI は、 <Image>
コンポーネントのsource
として直接使用できます。
オプション | 説明 |
---|---|
パス | 画像ファイルのパス、または「data:image/imagetype」というプレフィックスが付いた Base64 でエンコードされた画像文字列imagetype は jpeg または png)。 |
幅 | サイズ変更後の幅 (詳細についてはmode 参照) |
身長 | サイズ変更後の高さ (詳細についてはmode 参照) |
圧縮フォーマット | JPEG、PNG、または WEBP (Android のみ) のいずれかを使用できます。 |
品質 | 0 ~ 100 の数値。JPEG 圧縮に使用されます。 |
回転 | Android の場合、画像に適用する回転 (度単位)。 iOS では、回転は 90 度の倍数に制限 (および四捨五入) されます。 |
出力パス | サイズ変更された画像パス。 null の場合、サイズ変更された画像はキャッシュ フォルダーに保存されます。 OutputPath を設定するには、必ず回転のオプションも追加してください (回転が必要ない場合は、単に 0 に設定してください)。 |
メタを維持する | true の場合、サイズ変更では元の画像の回転補正も行われるため、向きの値を除くすべてのファイルのメタデータ/exif 情報の保存が試行されます。デフォルトはfalse で、すべてのメタデータが失われます。注: これは、(Web ではなく) ファイル システムからロードされたJPEG 画像にのみtrue ます。 |
オプション.モード | 反応ネイティブ画像のresizeModeに似ています: contain (デフォルト)、 cover 、またはstretch いずれかです。 contain 画像をwidth とheight 内に収め、その比率を維持します。 cover アスペクト比が維持され、画像のwidth またはheight 高くなるようにします。 stretch 画像のサイズを正確にwidth とheight に変更します。 |
options.onlyScaleDown | true の場合、画像は拡大されず、縮小されるだけです。 |
@react-native-camera-roll/camera-roll
使用している場合、このライブラリは機能しません。 <Image />
を使用してライブラリのuri
を持つ画像を表示しようとすると、次のエラーが発生します: No suitable image URL loader found for ph://...
。このエラーは、現在使用している ReactNative ImageLoader
から発生します。この問題を解決するための支援/PR を歓迎します。それまでは、 react-native-image-picker
使用することをお勧めします。当社は、リーン&アジャイル手法を使用した React Native によるマルチプラットフォーム アプリケーションの開発と設計を行っている 100 名規模の会社です。お客様のニーズに合ったソリューションの詳細については、電子メールまたはお問い合わせフォームでお気軽にご連絡ください。
私たちは常に喜んでお答えします?