expo-image-picker 17.0.4 → 17.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/android/build.gradle +2 -2
- package/expo-module.config.json +1 -1
- package/ios/ImageUtils.swift +20 -12
- package/ios/MediaHandler.swift +3 -3
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/{17.0.4/expo.modules.imagepicker-17.0.4.module → 17.0.5/expo.modules.imagepicker-17.0.5.module} +7 -7
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/17.0.5/expo.modules.imagepicker-17.0.5.module.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/17.0.5/expo.modules.imagepicker-17.0.5.module.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/17.0.5/expo.modules.imagepicker-17.0.5.module.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/17.0.5/expo.modules.imagepicker-17.0.5.module.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/{17.0.4/expo.modules.imagepicker-17.0.4.pom → 17.0.5/expo.modules.imagepicker-17.0.5.pom} +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/17.0.5/expo.modules.imagepicker-17.0.5.pom.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/17.0.5/expo.modules.imagepicker-17.0.5.pom.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/17.0.5/expo.modules.imagepicker-17.0.5.pom.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/17.0.5/expo.modules.imagepicker-17.0.5.pom.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/maven-metadata.xml +4 -4
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/maven-metadata.xml.md5 +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/maven-metadata.xml.sha1 +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/maven-metadata.xml.sha256 +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/maven-metadata.xml.sha512 +1 -1
- package/package.json +3 -3
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/17.0.4/expo.modules.imagepicker-17.0.4.module.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/17.0.4/expo.modules.imagepicker-17.0.4.module.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/17.0.4/expo.modules.imagepicker-17.0.4.module.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/17.0.4/expo.modules.imagepicker-17.0.4.module.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/17.0.4/expo.modules.imagepicker-17.0.4.pom.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/17.0.4/expo.modules.imagepicker-17.0.4.pom.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/17.0.4/expo.modules.imagepicker-17.0.4.pom.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/17.0.4/expo.modules.imagepicker-17.0.4.pom.sha512 +0 -1
- /package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/{17.0.4/expo.modules.imagepicker-17.0.4-sources.jar → 17.0.5/expo.modules.imagepicker-17.0.5-sources.jar} +0 -0
- /package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/{17.0.4/expo.modules.imagepicker-17.0.4-sources.jar.md5 → 17.0.5/expo.modules.imagepicker-17.0.5-sources.jar.md5} +0 -0
- /package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/{17.0.4/expo.modules.imagepicker-17.0.4-sources.jar.sha1 → 17.0.5/expo.modules.imagepicker-17.0.5-sources.jar.sha1} +0 -0
- /package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/{17.0.4/expo.modules.imagepicker-17.0.4-sources.jar.sha256 → 17.0.5/expo.modules.imagepicker-17.0.5-sources.jar.sha256} +0 -0
- /package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/{17.0.4/expo.modules.imagepicker-17.0.4-sources.jar.sha512 → 17.0.5/expo.modules.imagepicker-17.0.5-sources.jar.sha512} +0 -0
- /package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/{17.0.4/expo.modules.imagepicker-17.0.4.aar → 17.0.5/expo.modules.imagepicker-17.0.5.aar} +0 -0
- /package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/{17.0.4/expo.modules.imagepicker-17.0.4.aar.md5 → 17.0.5/expo.modules.imagepicker-17.0.5.aar.md5} +0 -0
- /package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/{17.0.4/expo.modules.imagepicker-17.0.4.aar.sha1 → 17.0.5/expo.modules.imagepicker-17.0.5.aar.sha1} +0 -0
- /package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/{17.0.4/expo.modules.imagepicker-17.0.4.aar.sha256 → 17.0.5/expo.modules.imagepicker-17.0.5.aar.sha256} +0 -0
- /package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/{17.0.4/expo.modules.imagepicker-17.0.4.aar.sha512 → 17.0.5/expo.modules.imagepicker-17.0.5.aar.sha512} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,12 @@
|
|
|
10
10
|
|
|
11
11
|
### 💡 Others
|
|
12
12
|
|
|
13
|
+
## 17.0.5 — 2025-08-28
|
|
14
|
+
|
|
15
|
+
### 🐛 Bug fixes
|
|
16
|
+
|
|
17
|
+
- [iOS] Fix wrong dimensions reported for portrait images ([#39230](https://github.com/expo/expo/pull/39230) by [@hirbod](https://github.com/hirbod))
|
|
18
|
+
|
|
13
19
|
## 17.0.4 — 2025-08-27
|
|
14
20
|
|
|
15
21
|
_This version does not introduce any user-facing changes._
|
package/android/build.gradle
CHANGED
|
@@ -4,13 +4,13 @@ plugins {
|
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
group = 'host.exp.exponent'
|
|
7
|
-
version = '17.0.
|
|
7
|
+
version = '17.0.5'
|
|
8
8
|
|
|
9
9
|
android {
|
|
10
10
|
namespace "expo.modules.imagepicker"
|
|
11
11
|
defaultConfig {
|
|
12
12
|
versionCode 22
|
|
13
|
-
versionName "17.0.
|
|
13
|
+
versionName "17.0.5"
|
|
14
14
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
15
15
|
}
|
|
16
16
|
testOptions {
|
package/expo-module.config.json
CHANGED
package/ios/ImageUtils.swift
CHANGED
|
@@ -350,25 +350,33 @@ internal struct ImageUtils {
|
|
|
350
350
|
}
|
|
351
351
|
|
|
352
352
|
/*
|
|
353
|
-
* Extracts the
|
|
354
|
-
* This
|
|
353
|
+
* Extracts the visual dimensions from an image file, accounting for EXIF orientation.
|
|
354
|
+
* This ensures portrait images return portrait dimensions (height > width).
|
|
355
355
|
* @param url The file URL of the image to analyze
|
|
356
|
-
* @return A CGSize containing the width and height, or nil if the dimensions cannot be determined
|
|
356
|
+
* @return A CGSize containing the visual width and height, or nil if the dimensions cannot be determined
|
|
357
357
|
*/
|
|
358
|
-
static func
|
|
359
|
-
//
|
|
360
|
-
|
|
358
|
+
static func readVisualSizeFrom(url: URL) -> CGSize? {
|
|
359
|
+
// Try to fetch the dimensions from the image metadata as this is the fastest way
|
|
360
|
+
guard let imageSource = CGImageSourceCreateWithURL(url as CFURL, nil),
|
|
361
361
|
let properties = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, nil) as? [CFString: Any],
|
|
362
362
|
let width = properties[kCGImagePropertyPixelWidth] as? CGFloat,
|
|
363
|
-
let height = properties[kCGImagePropertyPixelHeight] as? CGFloat {
|
|
364
|
-
|
|
363
|
+
let height = properties[kCGImagePropertyPixelHeight] as? CGFloat else {
|
|
364
|
+
// Fallback: minimally decode the image using UIImage when metadata is not available
|
|
365
|
+
if let img = UIImage(contentsOfFile: url.path) {
|
|
366
|
+
return CGSize(width: img.size.width, height: img.size.height)
|
|
367
|
+
}
|
|
368
|
+
return nil
|
|
365
369
|
}
|
|
366
370
|
|
|
367
|
-
//
|
|
368
|
-
|
|
369
|
-
|
|
371
|
+
// Check EXIF orientation to determine if dimensions should be swapped
|
|
372
|
+
let orientation = properties[kCGImagePropertyOrientation] as? Int ?? 1
|
|
373
|
+
|
|
374
|
+
// Orientations 5,6,7,8 (left/right rotated) need dimension swapping
|
|
375
|
+
if orientation >= 5 && orientation <= 8 {
|
|
376
|
+
return CGSize(width: height, height: width) // Swap for portrait
|
|
370
377
|
}
|
|
371
378
|
|
|
372
|
-
|
|
379
|
+
// Keep as is for landscape
|
|
380
|
+
return CGSize(width: width, height: height)
|
|
373
381
|
}
|
|
374
382
|
}
|
package/ios/MediaHandler.swift
CHANGED
|
@@ -97,7 +97,7 @@ internal struct MediaHandler {
|
|
|
97
97
|
imageData: imageData, orImageFileUrl: targetUrl, tryReadingFile: fileWasCopied) : nil
|
|
98
98
|
|
|
99
99
|
let exif = options.exif ? await ImageUtils.readExifFrom(mediaInfo: mediaInfo) : nil
|
|
100
|
-
let size =
|
|
100
|
+
let size = CGSize(width: image.size.width, height: image.size.height)
|
|
101
101
|
|
|
102
102
|
return AssetInfo(
|
|
103
103
|
assetId: asset?.localIdentifier,
|
|
@@ -144,7 +144,7 @@ internal struct MediaHandler {
|
|
|
144
144
|
let cachedUrl = targetUrl
|
|
145
145
|
let fileExtension = "." + cachedUrl.pathExtension
|
|
146
146
|
|
|
147
|
-
let size = ImageUtils.
|
|
147
|
+
let size = ImageUtils.readVisualSizeFrom(url: cachedUrl) ?? .zero
|
|
148
148
|
let fileSize = getFileSize(from: cachedUrl)
|
|
149
149
|
let mimeType = getMimeType(from: cachedUrl.pathExtension)
|
|
150
150
|
let fileName = itemProvider.suggestedName.map { $0 + fileExtension }
|
|
@@ -197,7 +197,7 @@ internal struct MediaHandler {
|
|
|
197
197
|
let exif = options.exif ? ImageUtils.readExifFrom(data: rawData) : nil
|
|
198
198
|
let base64 = options.base64 ? imageData?.base64EncodedString() : nil
|
|
199
199
|
|
|
200
|
-
let size =
|
|
200
|
+
let size = CGSize(width: image.size.width, height: image.size.height)
|
|
201
201
|
|
|
202
202
|
return AssetInfo(
|
|
203
203
|
assetId: selectedImage.assetIdentifier,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"component": {
|
|
4
4
|
"group": "host.exp.exponent",
|
|
5
5
|
"module": "expo.modules.imagepicker",
|
|
6
|
-
"version": "17.0.
|
|
6
|
+
"version": "17.0.5",
|
|
7
7
|
"attributes": {
|
|
8
8
|
"org.gradle.status": "release"
|
|
9
9
|
}
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
},
|
|
25
25
|
"files": [
|
|
26
26
|
{
|
|
27
|
-
"name": "expo.modules.imagepicker-17.0.
|
|
28
|
-
"url": "expo.modules.imagepicker-17.0.
|
|
27
|
+
"name": "expo.modules.imagepicker-17.0.5.aar",
|
|
28
|
+
"url": "expo.modules.imagepicker-17.0.5.aar",
|
|
29
29
|
"size": 149665,
|
|
30
30
|
"sha512": "d6f26506b6110a18fa55886dca78f4ecf073fa3299c14d4efd36ef71b18ae065047ca641bed8cb57a72b34381d705742ace28e90c688b6c4ad0e29fc18b17945",
|
|
31
31
|
"sha256": "82dea135594060c9e7736c85f5929597118d9a82df9a6bf848f428a5d172ce96",
|
|
@@ -95,8 +95,8 @@
|
|
|
95
95
|
],
|
|
96
96
|
"files": [
|
|
97
97
|
{
|
|
98
|
-
"name": "expo.modules.imagepicker-17.0.
|
|
99
|
-
"url": "expo.modules.imagepicker-17.0.
|
|
98
|
+
"name": "expo.modules.imagepicker-17.0.5.aar",
|
|
99
|
+
"url": "expo.modules.imagepicker-17.0.5.aar",
|
|
100
100
|
"size": 149665,
|
|
101
101
|
"sha512": "d6f26506b6110a18fa55886dca78f4ecf073fa3299c14d4efd36ef71b18ae065047ca641bed8cb57a72b34381d705742ace28e90c688b6c4ad0e29fc18b17945",
|
|
102
102
|
"sha256": "82dea135594060c9e7736c85f5929597118d9a82df9a6bf848f428a5d172ce96",
|
|
@@ -115,8 +115,8 @@
|
|
|
115
115
|
},
|
|
116
116
|
"files": [
|
|
117
117
|
{
|
|
118
|
-
"name": "expo.modules.imagepicker-17.0.
|
|
119
|
-
"url": "expo.modules.imagepicker-17.0.
|
|
118
|
+
"name": "expo.modules.imagepicker-17.0.5-sources.jar",
|
|
119
|
+
"url": "expo.modules.imagepicker-17.0.5-sources.jar",
|
|
120
120
|
"size": 24487,
|
|
121
121
|
"sha512": "baee9c33a5d10479e76876096bd9774b2dc7a6b8f73c2527400ff62989933b147a3bb003ef99883b39cb6a47fac491409f2872f08ed23dc194f712e4c0a48e32",
|
|
122
122
|
"sha256": "650f592065589e4007e6c179729c59e138577cebee67e633fb14aeb42817f0aa",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
f9900b57df10d5c6631f8cbc513b8bad
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
c7cbc697f46a56362d844716fcfd82e012c7d2bf
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
5a314c0d36a87c88b9862e891d6c5526a66998f639dc8f49c9e38363be4fa7ec
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
767981be7743c29afc99046c630d4cad0b7748074886c52cbb8ee765b6c36c680e1274f8ab29f51303f38b640509c8ec685b71330d27cc7f7ac750dc8ebd2b47
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<modelVersion>4.0.0</modelVersion>
|
|
10
10
|
<groupId>host.exp.exponent</groupId>
|
|
11
11
|
<artifactId>expo.modules.imagepicker</artifactId>
|
|
12
|
-
<version>17.0.
|
|
12
|
+
<version>17.0.5</version>
|
|
13
13
|
<packaging>aar</packaging>
|
|
14
14
|
<name>expo.modules.imagepicker</name>
|
|
15
15
|
<url>https://github.com/expo/expo</url>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
b48732b745c4e7d61a28a7ce02b6bd0d
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
af8d3fa38c924ef4f61de8b7af3048ca32fd93ed
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ae24c3b5f60ffcfb0888e6f70fd3a022ead75ad4a53c20225192c4a0a3014dfa
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
e11ec591b9f6c6a569f8cb8ccc7bd6dfd064c094692c09bf6cdcce3cf77fcd54c42cd0790ee2356a1439c0324b02bce8697caacdb578f1d4b04a83cea81c5072
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
<groupId>host.exp.exponent</groupId>
|
|
4
4
|
<artifactId>expo.modules.imagepicker</artifactId>
|
|
5
5
|
<versioning>
|
|
6
|
-
<latest>17.0.
|
|
7
|
-
<release>17.0.
|
|
6
|
+
<latest>17.0.5</latest>
|
|
7
|
+
<release>17.0.5</release>
|
|
8
8
|
<versions>
|
|
9
|
-
<version>17.0.
|
|
9
|
+
<version>17.0.5</version>
|
|
10
10
|
</versions>
|
|
11
|
-
<lastUpdated>
|
|
11
|
+
<lastUpdated>20250828212809</lastUpdated>
|
|
12
12
|
</versioning>
|
|
13
13
|
</metadata>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
71e7e413552003210a1fd8795ede292c
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
d0cc51db3ca1f547c62a930ffa576cd2ba05f368
|
package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/maven-metadata.xml.sha256
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
4c36d0bf490639a63e78cf19f125df1e5231c51b43257afa252c70487c8f841c
|
package/local-maven-repo/host/exp/exponent/expo.modules.imagepicker/maven-metadata.xml.sha512
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
cd053a053e1ec37f33e61f523785927064cffe6d60612919b3e2225fe7b8a45bfb991dab96dde8c7504fe4b983ef04feabf6d6b5abb353500026c392fa7f987a
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-image-picker",
|
|
3
|
-
"version": "17.0.
|
|
3
|
+
"version": "17.0.5",
|
|
4
4
|
"description": "Provides access to the system's UI for selecting images and videos from the phone's library or taking a photo with the camera.",
|
|
5
5
|
"main": "build/ImagePicker.js",
|
|
6
6
|
"types": "build/ImagePicker.d.ts",
|
|
@@ -39,11 +39,11 @@
|
|
|
39
39
|
"expo-image-loader": "~6.0.0"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"expo-module-scripts": "^5.0.
|
|
42
|
+
"expo-module-scripts": "^5.0.5",
|
|
43
43
|
"@testing-library/user-event": "^14.6.1"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
46
|
"expo": "*"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "5e15f3a5d68bc213ad36d59113d725fdea4f3411"
|
|
49
49
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
7dc7fecba1b4b2cd63fe401a31d3106f
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
e3229948a3d744d145f9005e86a6643475219efe
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
cf01a326d64ba66048f3f91f664af53b37141fe2b2e2c794f35818ae71b78d0c
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
9c11a3ee614176da0d3b290b1d78aba6af32194a1841f9bec7acfa834d853b2c21300e3e3817141dbfb371893f37c40d31726055a8a2d47b71a9fd2e45676a75
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
392d744f5125bc2fd07039f7d7f3b54c
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
b760a01e7e5710846ae9ec3267070781167cb52c
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2147d170cef4553e89511a9da4dfdbbbe50ce1b78a4570a5b0312e0ee13480ca
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
e6e02a48c90699aaeb3c5aea04b51de28e1d774063cbfceeaf8a0665442e0bf4fdcb763b370fafd7b1087f4dc816b36c4eeccecfc8fd6ac2543f35ec464dd468
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|