react native image resizer
3.0.10
警告自版本 3.0.0 起,該程式庫已從
@bam.tech/react-native-image-resizer
react-native-image-resizer
自版本3.0.0
起,此軟體包支援開箱即用的新架構(Turbo 模組)。它還具有與舊版本的向後相容性。
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 之間的數字。 |
旋轉 | 適用於 Android 的影像的旋轉(以度為單位)。在 iOS 上,旋轉被限制(並舍入)為 90 度的倍數。 |
輸出路徑 | 調整大小的影像路徑。如果為空,則調整大小的圖像將儲存在快取資料夾中。要設定outputPath,請確保也新增旋轉選項(如果不需要旋轉,只需將其設為0)。 |
保留元數據 | 如果true ,將嘗試保留所有檔案元資料/exif 訊息,方向值除外,因為調整大小也會對原始影像進行旋轉校正。預設為false ,這表示所有元資料都會遺失。注意:這只true 於從檔案系統(而非 Web)載入的JPEG 映像。 |
選項.模式 | 與react-native Image的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
。我們是一家擁有 100 名員工的公司,採用精實和敏捷方法論,透過 React Native 開發和設計多平台應用程式。要獲取有關適合您需求的解決方案的更多信息,請隨時透過電子郵件或聯絡表單與我們聯絡!
我們將永遠愉快地回答您?