react native image resizer
3.0.10
警告自版本 3.0.0 起,该库已从
react-native-image-resizer
移至@bam.tech/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 之间的数字。用于 JPEG 压缩。 |
旋转 | 适用于 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 开发和设计多平台应用程序。要获取有关适合您需求的解决方案的更多信息,请随时通过电子邮件或联系表格与我们联系!
我们将永远愉快地回答您?