You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

react-native-image-crop-picker安卓端选图裁剪前自动压缩如何解决

问题根因

react-native-image-crop-picker 安卓端存在默认的图片采样压缩逻辑:选图阶段如果没有显式配置图片压缩相关参数,库会自动对大尺寸图片做下采样,默认采样率刚好为1/8,和你遇到的9921x4961尺寸图片返回1241x621的现象完全吻合。iOS端没有这套默认下采样逻辑,因此不会出现该问题。
你当前代码中配置的compressVideoPreset仅对视频资源生效,无法控制图片的压缩行为,因此没有阻断默认的图片压缩逻辑。

修复方案

在openPicker的入参中显式配置图片压缩相关参数,将压缩宽高阈值设置为大于业务场景下可能遇到的最大图片尺寸,压缩质量设为1(最高质量),即可跳过默认的自动压缩,返回原图尺寸的资源。
修改后的完整代码如下:

const res = await ImagePicker.openPicker({
   multiple: true,
   mediaType: 'any',
   compressVideoPreset: 'HighestQuality',
   maxFiles: 10,
   // 新增以下配置关闭安卓端默认图片自动压缩
   compressImageMaxWidth: 12000,
   compressImageMaxHeight: 12000,
   compressImageQuality: 1
})
for await (const image of res) {
   Image.getSize(image.path, async (width, height) => {
     console.log('SIZE-PICKER: ', { width, height });
     await cropAndAttachImage(image);
   });
}

配置说明:如果你的业务不需要支持超高清大尺寸图片,可以根据实际场景下调compressImageMaxWidth和compressImageMaxHeight的数值,避免返回的图片体积过大造成后续上传、裁剪环节的性能卡顿。

内容的提问来源于stack exchange,提问作者warCommander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 13:12:28