expo-paste-input 0.1.10 → 0.1.11
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/ios/ExpoPasteInputView.swift +23 -10
- package/package.json +1 -1
|
@@ -492,12 +492,15 @@ class ExpoPasteInputView: ExpoView {
|
|
|
492
492
|
// Then, add static image file paths
|
|
493
493
|
if !images.isEmpty {
|
|
494
494
|
for image in images {
|
|
495
|
+
let normalizedImage = image.normalizedOrientation()
|
|
496
|
+
let hasAlpha = normalizedImage.hasAlpha
|
|
497
|
+
|
|
495
498
|
// Preserve transparency for images with alpha channel
|
|
496
499
|
let imageData: Data?
|
|
497
|
-
if
|
|
498
|
-
imageData =
|
|
500
|
+
if hasAlpha {
|
|
501
|
+
imageData = normalizedImage.pngData()
|
|
499
502
|
} else {
|
|
500
|
-
imageData =
|
|
503
|
+
imageData = normalizedImage.jpegData(compressionQuality: 0.8)
|
|
501
504
|
}
|
|
502
505
|
|
|
503
506
|
guard let imageData = imageData else {
|
|
@@ -505,7 +508,7 @@ class ExpoPasteInputView: ExpoView {
|
|
|
505
508
|
}
|
|
506
509
|
|
|
507
510
|
let tempDir = FileManager.default.temporaryDirectory
|
|
508
|
-
let fileExtension =
|
|
511
|
+
let fileExtension = hasAlpha ? ".png" : ".jpg"
|
|
509
512
|
let fileName = UUID().uuidString + fileExtension
|
|
510
513
|
let fileURL = tempDir.appendingPathComponent(fileName)
|
|
511
514
|
|
|
@@ -563,14 +566,11 @@ class ExpoPasteInputView: ExpoView {
|
|
|
563
566
|
return nil
|
|
564
567
|
}
|
|
565
568
|
|
|
566
|
-
//
|
|
567
|
-
guard let
|
|
569
|
+
// Create UIImage from the original data so imageOrientation from metadata is preserved.
|
|
570
|
+
guard let image = UIImage(data: data) else {
|
|
568
571
|
return nil
|
|
569
572
|
}
|
|
570
573
|
|
|
571
|
-
// Create UIImage from CGImage (this is safer than UIImage(data:))
|
|
572
|
-
let image = UIImage(cgImage: cgImage)
|
|
573
|
-
|
|
574
574
|
// Validate the image has valid dimensions
|
|
575
575
|
guard image.size.width > 0 && image.size.height > 0 else {
|
|
576
576
|
return nil
|
|
@@ -625,4 +625,17 @@ extension UIImage {
|
|
|
625
625
|
let alphaInfo = cgImage.alphaInfo
|
|
626
626
|
return alphaInfo != .none && alphaInfo != .noneSkipFirst && alphaInfo != .noneSkipLast
|
|
627
627
|
}
|
|
628
|
-
|
|
628
|
+
|
|
629
|
+
func normalizedOrientation() -> UIImage {
|
|
630
|
+
guard imageOrientation != .up else { return self }
|
|
631
|
+
guard size.width > 0 && size.height > 0 else { return self }
|
|
632
|
+
|
|
633
|
+
let format = UIGraphicsImageRendererFormat.default()
|
|
634
|
+
format.scale = scale
|
|
635
|
+
format.opaque = !hasAlpha
|
|
636
|
+
|
|
637
|
+
return UIGraphicsImageRenderer(size: size, format: format).image { _ in
|
|
638
|
+
draw(in: CGRect(origin: .zero, size: size))
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
}
|
package/package.json
CHANGED