@succinctlabs/react-native-zcam1 0.2.5 → 0.3.0
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/README.md +144 -10
- package/Zcam1Sdk.podspec +1 -4
- package/cpp/generated/zcam1_c2pa_utils.cpp +2910 -3365
- package/cpp/generated/zcam1_c2pa_utils.hpp +130 -352
- package/cpp/generated/zcam1_certs_utils.cpp +1266 -1064
- package/cpp/generated/zcam1_certs_utils.hpp +37 -57
- package/cpp/generated/zcam1_verify_utils.cpp +1307 -1120
- package/cpp/generated/zcam1_verify_utils.hpp +39 -64
- package/cpp/proving/generated/zcam1_proving_utils.cpp +2619 -2917
- package/cpp/proving/generated/zcam1_proving_utils.hpp +102 -260
- package/ios/Zcam1Camera.swift +140 -53
- package/ios/Zcam1CameraFilmStyle.swift +106 -0
- package/lib/module/camera.js +2 -11
- package/lib/module/camera.js.map +1 -1
- package/lib/module/capture.js +2 -2
- package/lib/module/capture.js.map +1 -1
- package/lib/module/common.js +1 -1
- package/lib/module/common.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/picker.js +2 -1
- package/lib/module/picker.js.map +1 -1
- package/lib/module/proving/prove.js +4 -4
- package/lib/module/proving/prove.js.map +1 -1
- package/lib/module/utils.js +7 -0
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/src/camera.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/picker.d.ts.map +1 -1
- package/lib/typescript/src/proving/prove.d.ts +1 -1
- package/lib/typescript/src/proving/prove.d.ts.map +1 -1
- package/lib/typescript/src/utils.d.ts +4 -0
- package/lib/typescript/src/utils.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/camera.tsx +2 -13
- package/src/capture.tsx +2 -2
- package/src/common.tsx +1 -1
- package/src/index.ts +1 -1
- package/src/picker.tsx +2 -1
- package/src/proving/prove.tsx +5 -5
- package/src/utils.ts +7 -0
package/ios/Zcam1Camera.swift
CHANGED
|
@@ -10,6 +10,7 @@ import CoreMotion
|
|
|
10
10
|
import Foundation
|
|
11
11
|
import Harbeth
|
|
12
12
|
import ImageIO
|
|
13
|
+
import MetalKit
|
|
13
14
|
import MobileCoreServices
|
|
14
15
|
import UIKit
|
|
15
16
|
|
|
@@ -2620,13 +2621,113 @@ public final class Zcam1CameraService: NSObject, AVCaptureAudioDataOutputSampleB
|
|
|
2620
2621
|
}
|
|
2621
2622
|
// Capture delegate implementation moved into the internal PhotoCaptureDelegate helper.
|
|
2622
2623
|
|
|
2624
|
+
// MARK: - Metal Preview View
|
|
2625
|
+
|
|
2626
|
+
/// Metal-backed preview view that renders CIImage directly to GPU without CPU readback.
|
|
2627
|
+
/// Eliminates the expensive GPU→CPU texture readback that UIImageView + CIContext.createCGImage() causes.
|
|
2628
|
+
/// The previous UIImageView approach spent ~74% of CPU time on agxsTwiddleAddressCommon (Metal texture readback).
|
|
2629
|
+
@available(iOS 16.0, *)
|
|
2630
|
+
private class MetalPreviewView: MTKView, MTKViewDelegate {
|
|
2631
|
+
|
|
2632
|
+
private var ciContext: CIContext?
|
|
2633
|
+
private var commandQueue: MTLCommandQueue?
|
|
2634
|
+
private var currentImage: CIImage?
|
|
2635
|
+
private let colorSpace = CGColorSpaceCreateDeviceRGB()
|
|
2636
|
+
|
|
2637
|
+
init() {
|
|
2638
|
+
guard let device = MTLCreateSystemDefaultDevice() else {
|
|
2639
|
+
super.init(frame: .zero, device: nil)
|
|
2640
|
+
return
|
|
2641
|
+
}
|
|
2642
|
+
super.init(frame: .zero, device: device)
|
|
2643
|
+
|
|
2644
|
+
self.delegate = self
|
|
2645
|
+
commandQueue = device.makeCommandQueue()
|
|
2646
|
+
ciContext = CIContext(mtlDevice: device, options: [.cacheIntermediates: false])
|
|
2647
|
+
|
|
2648
|
+
// Manual draw mode — we trigger draws when new frames arrive.
|
|
2649
|
+
isPaused = true
|
|
2650
|
+
enableSetNeedsDisplay = false
|
|
2651
|
+
framebufferOnly = false
|
|
2652
|
+
|
|
2653
|
+
// Opaque for optimal compositing performance.
|
|
2654
|
+
isOpaque = true
|
|
2655
|
+
clearsContextBeforeDrawing = false
|
|
2656
|
+
}
|
|
2657
|
+
|
|
2658
|
+
required init(coder: NSCoder) {
|
|
2659
|
+
fatalError("init(coder:) not supported")
|
|
2660
|
+
}
|
|
2661
|
+
|
|
2662
|
+
/// Render a CIImage to the Metal drawable. Safe to call from any thread.
|
|
2663
|
+
func render(_ image: CIImage) {
|
|
2664
|
+
currentImage = image
|
|
2665
|
+
DispatchQueue.main.async { [weak self] in
|
|
2666
|
+
self?.draw()
|
|
2667
|
+
}
|
|
2668
|
+
}
|
|
2669
|
+
|
|
2670
|
+
/// Clear the preview (e.g., during camera position switch).
|
|
2671
|
+
func clear() {
|
|
2672
|
+
currentImage = nil
|
|
2673
|
+
}
|
|
2674
|
+
|
|
2675
|
+
// MARK: - MTKViewDelegate
|
|
2676
|
+
|
|
2677
|
+
func mtkView(_ view: MTKView, drawableSizeWillChange size: CGSize) {
|
|
2678
|
+
// Scaling is handled dynamically in draw(in:).
|
|
2679
|
+
}
|
|
2680
|
+
|
|
2681
|
+
func draw(in view: MTKView) {
|
|
2682
|
+
guard let drawable = currentDrawable,
|
|
2683
|
+
let commandBuffer = commandQueue?.makeCommandBuffer(),
|
|
2684
|
+
let ciContext = ciContext else {
|
|
2685
|
+
return
|
|
2686
|
+
}
|
|
2687
|
+
|
|
2688
|
+
let drawableSize = view.drawableSize
|
|
2689
|
+
let bounds = CGRect(origin: .zero, size: drawableSize)
|
|
2690
|
+
|
|
2691
|
+
guard let image = currentImage else {
|
|
2692
|
+
// No image — present empty drawable to avoid stale frames.
|
|
2693
|
+
commandBuffer.present(drawable)
|
|
2694
|
+
commandBuffer.commit()
|
|
2695
|
+
return
|
|
2696
|
+
}
|
|
2697
|
+
|
|
2698
|
+
// Scale to fill the drawable (scaleAspectFill behavior).
|
|
2699
|
+
let scaleX = drawableSize.width / image.extent.width
|
|
2700
|
+
let scaleY = drawableSize.height / image.extent.height
|
|
2701
|
+
let scale = max(scaleX, scaleY)
|
|
2702
|
+
|
|
2703
|
+
// Apply scale, then center within the drawable bounds.
|
|
2704
|
+
var scaled = image.transformed(by: CGAffineTransform(scaleX: scale, y: scale))
|
|
2705
|
+
let tx = (drawableSize.width - scaled.extent.width) / 2 - scaled.extent.origin.x
|
|
2706
|
+
let ty = (drawableSize.height - scaled.extent.height) / 2 - scaled.extent.origin.y
|
|
2707
|
+
scaled = scaled.transformed(by: CGAffineTransform(translationX: tx, y: ty))
|
|
2708
|
+
|
|
2709
|
+
// Crop to drawable bounds (clips overflowing edges from aspect fill).
|
|
2710
|
+
let cropped = scaled.cropped(to: bounds)
|
|
2711
|
+
|
|
2712
|
+
ciContext.render(
|
|
2713
|
+
cropped,
|
|
2714
|
+
to: drawable.texture,
|
|
2715
|
+
commandBuffer: commandBuffer,
|
|
2716
|
+
bounds: bounds,
|
|
2717
|
+
colorSpace: colorSpace
|
|
2718
|
+
)
|
|
2719
|
+
|
|
2720
|
+
commandBuffer.present(drawable)
|
|
2721
|
+
commandBuffer.commit()
|
|
2722
|
+
}
|
|
2723
|
+
}
|
|
2724
|
+
|
|
2623
2725
|
// MARK: - Camera Preview View
|
|
2624
2726
|
|
|
2625
2727
|
/// UIView subclass that displays the live camera preview.
|
|
2626
2728
|
///
|
|
2627
|
-
///
|
|
2628
|
-
///
|
|
2629
|
-
/// All frames go through the same pipeline - film style is applied when needed.
|
|
2729
|
+
/// Uses Metal-backed rendering via MetalPreviewView to keep the entire preview pipeline on GPU.
|
|
2730
|
+
/// CIImage from the camera → CIFilter film styles → Metal drawable, with zero CPU readback.
|
|
2630
2731
|
///
|
|
2631
2732
|
/// This view is intended to be wrapped by a React Native view manager
|
|
2632
2733
|
/// and controlled via props such as `isActive` and `position`.
|
|
@@ -2648,7 +2749,7 @@ public final class Zcam1CameraView: UIView, AVCaptureVideoDataOutputSampleBuffer
|
|
|
2648
2749
|
guard oldValue != position else { return }
|
|
2649
2750
|
// Set flag first to stop accepting frames, then clear the preview.
|
|
2650
2751
|
isReconfiguring = true
|
|
2651
|
-
|
|
2752
|
+
metalPreviewView.clear()
|
|
2652
2753
|
reconfigureSession()
|
|
2653
2754
|
}
|
|
2654
2755
|
}
|
|
@@ -2726,20 +2827,14 @@ public final class Zcam1CameraView: UIView, AVCaptureVideoDataOutputSampleBuffer
|
|
|
2726
2827
|
/// Token for this view's motion manager listener, used for cleanup in deinit.
|
|
2727
2828
|
private var orientationListenerToken: Int?
|
|
2728
2829
|
|
|
2729
|
-
// Preview rendering -
|
|
2730
|
-
private let
|
|
2731
|
-
let iv = UIImageView()
|
|
2732
|
-
iv.contentMode = .scaleAspectFill
|
|
2733
|
-
iv.clipsToBounds = true
|
|
2734
|
-
return iv
|
|
2735
|
-
}()
|
|
2830
|
+
// Preview rendering — Metal-backed view for GPU-only frame display.
|
|
2831
|
+
private let metalPreviewView = MetalPreviewView()
|
|
2736
2832
|
|
|
2737
|
-
// Video processing
|
|
2833
|
+
// Video processing.
|
|
2738
2834
|
private var videoDataOutput: AVCaptureVideoDataOutput?
|
|
2739
2835
|
private let videoDataQueue = DispatchQueue(label: "com.zcam1.videodata", qos: .userInteractive)
|
|
2740
2836
|
private var currentFilmStyleEnum: Zcam1CameraFilmStyle = .normal
|
|
2741
|
-
private var
|
|
2742
|
-
private let ciContext = CIContext(options: [.useSoftwareRenderer: false])
|
|
2837
|
+
private var currentFilmStyleRecipe: [[String: Any]]?
|
|
2743
2838
|
private var frameCount: Int = 0
|
|
2744
2839
|
|
|
2745
2840
|
// Flag to skip frames during camera reconfiguration to avoid showing incorrectly mirrored frames.
|
|
@@ -2758,10 +2853,10 @@ public final class Zcam1CameraView: UIView, AVCaptureVideoDataOutputSampleBuffer
|
|
|
2758
2853
|
private func commonInit() {
|
|
2759
2854
|
backgroundColor = .black
|
|
2760
2855
|
|
|
2761
|
-
// Add preview
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
addSubview(
|
|
2856
|
+
// Add Metal preview view for GPU-only frame rendering.
|
|
2857
|
+
metalPreviewView.frame = bounds
|
|
2858
|
+
metalPreviewView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
|
|
2859
|
+
addSubview(metalPreviewView)
|
|
2765
2860
|
|
|
2766
2861
|
// Register for orientation change events from the motion manager.
|
|
2767
2862
|
orientationListenerToken = Zcam1MotionManager.shared.addListener { [weak self] orientation in
|
|
@@ -2782,21 +2877,24 @@ public final class Zcam1CameraView: UIView, AVCaptureVideoDataOutputSampleBuffer
|
|
|
2782
2877
|
|
|
2783
2878
|
public override func layoutSubviews() {
|
|
2784
2879
|
super.layoutSubviews()
|
|
2785
|
-
|
|
2880
|
+
metalPreviewView.frame = bounds
|
|
2786
2881
|
}
|
|
2787
2882
|
|
|
2788
2883
|
// MARK: - Film Style Resolution
|
|
2789
2884
|
|
|
2790
2885
|
/// Resolves and applies the current film style, checking overrides and custom film styles first.
|
|
2886
|
+
/// Creates CIFilter chain for GPU-only preview, and Harbeth chain for capture/recording via the service.
|
|
2791
2887
|
private func applyCurrentFilmStyle() {
|
|
2792
2888
|
// Check filmStyleOverrides first.
|
|
2793
2889
|
if let overrides = filmStyleOverrides as? [String: [[String: Any]]],
|
|
2794
2890
|
let recipe = overrides[filmStyle] {
|
|
2795
2891
|
print("[Zcam1CameraView] Using film style override for '\(filmStyle)'")
|
|
2796
|
-
|
|
2797
|
-
|
|
2892
|
+
// Store recipe for per-frame CIFilter creation on the capture queue (thread-safe).
|
|
2893
|
+
currentFilmStyleRecipe = recipe
|
|
2894
|
+
// Harbeth chain for capture/recording via the service.
|
|
2895
|
+
let harbethFilters = Zcam1CameraFilmStyle.createFilmStyles(from: recipe)
|
|
2798
2896
|
currentFilmStyleEnum = .normal
|
|
2799
|
-
Zcam1CameraService.shared.setCustomFilmStyles(
|
|
2897
|
+
Zcam1CameraService.shared.setCustomFilmStyles(harbethFilters)
|
|
2800
2898
|
return
|
|
2801
2899
|
}
|
|
2802
2900
|
|
|
@@ -2804,15 +2902,15 @@ public final class Zcam1CameraView: UIView, AVCaptureVideoDataOutputSampleBuffer
|
|
|
2804
2902
|
if let custom = customFilmStyles as? [String: [[String: Any]]],
|
|
2805
2903
|
let recipe = custom[filmStyle] {
|
|
2806
2904
|
print("[Zcam1CameraView] Using custom film style '\(filmStyle)'")
|
|
2807
|
-
|
|
2808
|
-
|
|
2905
|
+
currentFilmStyleRecipe = recipe
|
|
2906
|
+
let harbethFilters = Zcam1CameraFilmStyle.createFilmStyles(from: recipe)
|
|
2809
2907
|
currentFilmStyleEnum = .normal
|
|
2810
|
-
Zcam1CameraService.shared.setCustomFilmStyles(
|
|
2908
|
+
Zcam1CameraService.shared.setCustomFilmStyles(harbethFilters)
|
|
2811
2909
|
return
|
|
2812
2910
|
}
|
|
2813
2911
|
|
|
2814
2912
|
// Fall back to no film style (JS SDK provides all built-in recipes via filmStyleOverrides).
|
|
2815
|
-
|
|
2913
|
+
currentFilmStyleRecipe = nil
|
|
2816
2914
|
currentFilmStyleEnum = .normal
|
|
2817
2915
|
Zcam1CameraService.shared.setFilmStyle(.normal)
|
|
2818
2916
|
}
|
|
@@ -2844,38 +2942,27 @@ public final class Zcam1CameraView: UIView, AVCaptureVideoDataOutputSampleBuffer
|
|
|
2844
2942
|
return
|
|
2845
2943
|
}
|
|
2846
2944
|
|
|
2847
|
-
//
|
|
2848
|
-
|
|
2849
|
-
guard let cgImage = ciContext.createCGImage(ciImage, from: ciImage.extent) else {
|
|
2850
|
-
return
|
|
2851
|
-
}
|
|
2945
|
+
// Create CIImage from pixel buffer (zero-cost wrapper, stays on GPU).
|
|
2946
|
+
var ciImage = CIImage(cvPixelBuffer: pixelBuffer)
|
|
2852
2947
|
|
|
2853
|
-
//
|
|
2854
|
-
//
|
|
2855
|
-
//
|
|
2856
|
-
//
|
|
2857
|
-
//
|
|
2858
|
-
// Back camera: .right (90° CW) maps the landscape-right sensor to portrait.
|
|
2859
|
-
// Front camera: .left (90° CCW) because the mirrored pixel buffer from
|
|
2860
|
-
// isVideoMirrored on the AVCaptureConnection changes the effective sensor
|
|
2861
|
-
// orientation. Using .right would display upside-down; .rightMirrored would
|
|
2862
|
-
// fix orientation but cancel out the mirror. .left gives correct orientation
|
|
2863
|
-
// while preserving the connection-level mirror for a natural selfie view.
|
|
2948
|
+
// Apply orientation as a lazy CIImage transform (no CPU work).
|
|
2949
|
+
// Camera sensor buffers always arrive in landscape (native sensor orientation).
|
|
2950
|
+
// Back camera: .right (90° CW) maps landscape-right sensor to portrait.
|
|
2951
|
+
// Front camera: .left (90° CCW) because isVideoMirrored on the AVCaptureConnection
|
|
2952
|
+
// changes the effective sensor orientation.
|
|
2864
2953
|
let isFront = position.lowercased() == "front"
|
|
2865
|
-
|
|
2866
|
-
|
|
2867
|
-
var displayImage = UIImage(cgImage: cgImage, scale: 1.0, orientation: imageOrientation)
|
|
2954
|
+
ciImage = ciImage.oriented(isFront ? .left : .right)
|
|
2868
2955
|
|
|
2869
|
-
// Apply film style if
|
|
2870
|
-
|
|
2871
|
-
|
|
2956
|
+
// Apply film style CIFilters if configured (GPU pipeline, lazy evaluation).
|
|
2957
|
+
// Filters are created fresh per-frame from the stored recipe to avoid cross-thread
|
|
2958
|
+
// mutation of CIFilter instances (recipe is set on main thread, read here on capture queue).
|
|
2959
|
+
if let recipe = currentFilmStyleRecipe {
|
|
2960
|
+
let filters = Zcam1CameraFilmStyle.createCIFilters(from: recipe)
|
|
2961
|
+
ciImage = Zcam1CameraFilmStyle.applyCIFilters(filters, to: ciImage)
|
|
2872
2962
|
}
|
|
2873
2963
|
|
|
2874
|
-
//
|
|
2875
|
-
|
|
2876
|
-
guard let self = self, !self.isReconfiguring else { return }
|
|
2877
|
-
self.previewImageView.image = displayImage
|
|
2878
|
-
}
|
|
2964
|
+
// Render directly to Metal drawable (GPU→GPU, no CPU readback).
|
|
2965
|
+
metalPreviewView.render(ciImage)
|
|
2879
2966
|
}
|
|
2880
2967
|
|
|
2881
2968
|
public func captureOutput(
|
|
@@ -188,4 +188,110 @@ public enum Zcam1CameraFilmStyle: String, CaseIterable {
|
|
|
188
188
|
|
|
189
189
|
return outputBuffer
|
|
190
190
|
}
|
|
191
|
+
|
|
192
|
+
// MARK: - CIFilter-based Pipeline (GPU-only, for preview rendering)
|
|
193
|
+
|
|
194
|
+
/// Create CIFilter equivalents from a JavaScript film style recipe.
|
|
195
|
+
/// Used for GPU-only preview rendering without CPU readback.
|
|
196
|
+
/// Results are visually approximate to Harbeth — exact film styles are applied via Harbeth during capture.
|
|
197
|
+
static func createCIFilters(from recipe: [[String: Any]]) -> [CIFilter] {
|
|
198
|
+
var filters: [CIFilter] = []
|
|
199
|
+
|
|
200
|
+
// Collect color controls into a single CIColorControls filter for efficiency.
|
|
201
|
+
var saturation: Float?
|
|
202
|
+
var contrast: Float?
|
|
203
|
+
var brightness: Float?
|
|
204
|
+
|
|
205
|
+
for effect in recipe {
|
|
206
|
+
guard let type = effect["type"] as? String else { continue }
|
|
207
|
+
|
|
208
|
+
switch type {
|
|
209
|
+
case "whiteBalance":
|
|
210
|
+
if let config = effect["config"] as? [String: Any],
|
|
211
|
+
let temp = config["temperature"] as? Float {
|
|
212
|
+
let tint = config["tint"] as? Float ?? 0
|
|
213
|
+
if let filter = CIFilter(name: "CITemperatureAndTint") {
|
|
214
|
+
filter.setValue(CIVector(x: 6500, y: 0), forKey: "inputNeutral")
|
|
215
|
+
filter.setValue(
|
|
216
|
+
CIVector(x: CGFloat(6500 + temp * 100), y: CGFloat(tint * 100)),
|
|
217
|
+
forKey: "inputTargetNeutral"
|
|
218
|
+
)
|
|
219
|
+
filters.append(filter)
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
case "saturation":
|
|
223
|
+
saturation = effect["value"] as? Float
|
|
224
|
+
case "contrast":
|
|
225
|
+
contrast = effect["value"] as? Float
|
|
226
|
+
case "brightness":
|
|
227
|
+
brightness = effect["value"] as? Float
|
|
228
|
+
case "hue":
|
|
229
|
+
if let value = effect["value"] as? Float {
|
|
230
|
+
if let filter = CIFilter(name: "CIHueAdjust") {
|
|
231
|
+
// Harbeth uses degrees, CIFilter uses radians.
|
|
232
|
+
filter.setValue(NSNumber(value: value * .pi / 180.0), forKey: "inputAngle")
|
|
233
|
+
filters.append(filter)
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
case "vibrance":
|
|
237
|
+
if let value = effect["value"] as? Float {
|
|
238
|
+
if let filter = CIFilter(name: "CIVibrance") {
|
|
239
|
+
filter.setValue(NSNumber(value: value), forKey: "inputAmount")
|
|
240
|
+
filters.append(filter)
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
case "highlightShadow":
|
|
244
|
+
if let config = effect["config"] as? [String: Any],
|
|
245
|
+
let highlights = config["highlights"] as? Float,
|
|
246
|
+
let shadows = config["shadows"] as? Float {
|
|
247
|
+
if let filter = CIFilter(name: "CIHighlightShadowAdjust") {
|
|
248
|
+
filter.setValue(NSNumber(value: highlights), forKey: "inputHighlightAmount")
|
|
249
|
+
filter.setValue(NSNumber(value: shadows), forKey: "inputShadowAmount")
|
|
250
|
+
filters.append(filter)
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
case "monochrome":
|
|
254
|
+
if let config = effect["config"] as? [String: Any],
|
|
255
|
+
let intensity = config["intensity"] as? Float {
|
|
256
|
+
if let filter = CIFilter(name: "CIColorMonochrome") {
|
|
257
|
+
filter.setValue(NSNumber(value: intensity), forKey: "inputIntensity")
|
|
258
|
+
if let colorConfig = config["color"] as? [String: Any],
|
|
259
|
+
let r = colorConfig["r"] as? CGFloat,
|
|
260
|
+
let g = colorConfig["g"] as? CGFloat,
|
|
261
|
+
let b = colorConfig["b"] as? CGFloat {
|
|
262
|
+
filter.setValue(CIColor(red: r, green: g, blue: b), forKey: "inputColor")
|
|
263
|
+
}
|
|
264
|
+
filters.append(filter)
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
default:
|
|
268
|
+
break
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// Combine saturation, contrast, and brightness into one CIColorControls filter.
|
|
273
|
+
if saturation != nil || contrast != nil || brightness != nil {
|
|
274
|
+
if let filter = CIFilter(name: "CIColorControls") {
|
|
275
|
+
if let s = saturation { filter.setValue(NSNumber(value: s), forKey: "inputSaturation") }
|
|
276
|
+
if let c = contrast { filter.setValue(NSNumber(value: c), forKey: "inputContrast") }
|
|
277
|
+
if let b = brightness { filter.setValue(NSNumber(value: b), forKey: "inputBrightness") }
|
|
278
|
+
// Insert at start so color controls are applied before other effects.
|
|
279
|
+
filters.insert(filter, at: 0)
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
return filters
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/// Apply an array of CIFilters to a CIImage. All processing stays on GPU (lazy evaluation).
|
|
287
|
+
static func applyCIFilters(_ filters: [CIFilter], to image: CIImage) -> CIImage {
|
|
288
|
+
var result = image
|
|
289
|
+
for filter in filters {
|
|
290
|
+
filter.setValue(result, forKey: kCIInputImageKey)
|
|
291
|
+
if let output = filter.outputImage {
|
|
292
|
+
result = output
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
return result
|
|
296
|
+
}
|
|
191
297
|
}
|
package/lib/module/camera.js
CHANGED
|
@@ -7,7 +7,7 @@ import { Dirs, Util } from "react-native-file-access";
|
|
|
7
7
|
import { buildSelfSignedCertificate, computeHash, formatFromPath, ManifestEditor } from "./bindings.js";
|
|
8
8
|
import { ZPhoto } from "./capture.js";
|
|
9
9
|
import NativeZcam1Sdk from "./NativeZcam1Capture.js";
|
|
10
|
-
import { generateAppAttestAssertion } from "./utils.js";
|
|
10
|
+
import { generateAppAttestAssertion, stripFileProtocol } from "./utils.js";
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
12
|
export const CERT_KEY_TAG = "CERT_KEY_TAG";
|
|
13
13
|
|
|
@@ -393,16 +393,8 @@ export class ZCamera extends React.PureComponent {
|
|
|
393
393
|
const includeDepthData = options.includeDepthData ?? false;
|
|
394
394
|
const aspectRatio = options.aspectRatio ?? "4:3";
|
|
395
395
|
const orientation = options.orientation ?? "auto";
|
|
396
|
-
console.log("[ZCamera] takePhoto: calling native with includeDepthData =", includeDepthData);
|
|
397
396
|
const result = await NativeZcam1Sdk.takeNativePhoto(format, this.props.position || "back", flash, includeDepthData, aspectRatio, orientation, false // skipPostProcessing - default to false for normal operation
|
|
398
397
|
);
|
|
399
|
-
console.log("[ZCamera] takePhoto: native result:", {
|
|
400
|
-
filePath: result?.filePath ? "present" : "missing",
|
|
401
|
-
format: result?.format,
|
|
402
|
-
hasMetadata: !!result?.metadata,
|
|
403
|
-
hasDepthData: !!result?.depthData,
|
|
404
|
-
depthDataKeys: result?.depthData ? Object.keys(result.depthData) : null
|
|
405
|
-
});
|
|
406
398
|
if (!result || !result.filePath) {
|
|
407
399
|
throw new Error("Native camera capture did not return a valid file path.");
|
|
408
400
|
}
|
|
@@ -487,7 +479,7 @@ export class ZCamera extends React.PureComponent {
|
|
|
487
479
|
* Embeds C2PA bindings and capture metadata into a photo, producing a new signed file.
|
|
488
480
|
*/
|
|
489
481
|
async function embedBindings(originalPath, when, metadata, captureInfo, certChainPem) {
|
|
490
|
-
originalPath = originalPath
|
|
482
|
+
originalPath = stripFileProtocol(originalPath);
|
|
491
483
|
const dataHash = computeHash(originalPath);
|
|
492
484
|
const format = formatFromPath(originalPath);
|
|
493
485
|
const ext = Util.extname(originalPath);
|
|
@@ -502,7 +494,6 @@ async function embedBindings(originalPath, when, metadata, captureInfo, certChai
|
|
|
502
494
|
if (format.indexOf("video") < 0) {
|
|
503
495
|
normalizedMetadata = manifestEditor.addPhotoMetadataAction(metadata, when);
|
|
504
496
|
} else {
|
|
505
|
-
console.log("Metadata", metadata);
|
|
506
497
|
normalizedMetadata = manifestEditor.addVideoMetadataAction(metadata, when);
|
|
507
498
|
}
|
|
508
499
|
const assertion = await generateAppAttestAssertion(dataHash, normalizedMetadata, captureInfo.deviceKeyId);
|
package/lib/module/camera.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["JailMonkey","React","requireNativeComponent","Dirs","Util","buildSelfSignedCertificate","computeHash","formatFromPath","ManifestEditor","ZPhoto","NativeZcam1Sdk","generateAppAttestAssertion","jsx","_jsx","CERT_KEY_TAG","DEFAULT_FILM_STYLE_RECIPES","normal","mellow","type","config","temperature","tint","value","highlights","shadows","nostalgic","bw","intensity","color","r","g","b","Zcam1CameraView","ZCamera","PureComponent","nativeRef","createRef","recordingInProgress","lastVideoStartResult","constructor","props","certChainPem","certChain","pem","console","warn","captureInfo","contentPublicKey","resolveFilmStyleInfo","filmStyle","filmStyleOverrides","customFilmStyles","isOverride","undefined","isCustom","source","recipe","name","JSON","stringify","getMinZoom","getMaxZoom","getSwitchOverZoomFactors","hasUltraWideCamera","getExposureRange","resetExposure","focusAtPoint","x","y","setZoomAnimated","factor","getDeviceDiagnostics","isDepthSupported","hasDepthZoomLimitations","getDepthSupportedZoomRanges","startVideoRecording","position","options","Error","result","startNativeVideoRecording","maxDurationSeconds","e","stopVideoRecording","stopNativeVideoRecording","when","Date","toISOString","replace","split","isJailBroken","isLocationSpoofingAvailable","canMockLocation","filePath","embedBindings","deviceMake","deviceModel","softwareVersion","format","hasAudio","durationSeconds","fileSizeBytes","width","height","rotationDegrees","frameRate","videoCodec","audioCodec","audioSampleRate","audioChannels","authenticityData","takePhoto","captureFormat","flash","includeDepthData","aspectRatio","orientation","log","takeNativePhoto","hasMetadata","metadata","hasDepthData","depthData","depthDataKeys","Object","keys","originalPath","exif","tiff","DateTime","Make","Model","Software","destinationPath","xResolution","PixelXDimension","yResolution","PixelYDimension","Orientation","iso","ISOSpeedRatings","toString","exposureTime","ExposureTime","depthOfField","FNumber","focalLength","FocalLength","render","isActive","zoom","torch","exposure","depthEnabled","onOrientationChange","style","mergedFilmStyleOverrides","ref","flex","event","nativeEvent","dataHash","ext","extname","CacheDir","now","Math","random","slice","manifestEditor","contentKeyId","buffer","normalizedMetadata","indexOf","addPhotoMetadataAction","addVideoMetadataAction","assertion","deviceKeyId","addAssertion","app_id","appId","device_key_id","attestation","embedManifestToFile"],"sourceRoot":"../../src","sources":["camera.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["JailMonkey","React","requireNativeComponent","Dirs","Util","buildSelfSignedCertificate","computeHash","formatFromPath","ManifestEditor","ZPhoto","NativeZcam1Sdk","generateAppAttestAssertion","stripFileProtocol","jsx","_jsx","CERT_KEY_TAG","DEFAULT_FILM_STYLE_RECIPES","normal","mellow","type","config","temperature","tint","value","highlights","shadows","nostalgic","bw","intensity","color","r","g","b","Zcam1CameraView","ZCamera","PureComponent","nativeRef","createRef","recordingInProgress","lastVideoStartResult","constructor","props","certChainPem","certChain","pem","console","warn","captureInfo","contentPublicKey","resolveFilmStyleInfo","filmStyle","filmStyleOverrides","customFilmStyles","isOverride","undefined","isCustom","source","recipe","name","JSON","stringify","getMinZoom","getMaxZoom","getSwitchOverZoomFactors","hasUltraWideCamera","getExposureRange","resetExposure","focusAtPoint","x","y","setZoomAnimated","factor","getDeviceDiagnostics","isDepthSupported","hasDepthZoomLimitations","getDepthSupportedZoomRanges","startVideoRecording","position","options","Error","result","startNativeVideoRecording","maxDurationSeconds","e","stopVideoRecording","stopNativeVideoRecording","when","Date","toISOString","replace","split","isJailBroken","isLocationSpoofingAvailable","canMockLocation","filePath","embedBindings","deviceMake","deviceModel","softwareVersion","format","hasAudio","durationSeconds","fileSizeBytes","width","height","rotationDegrees","frameRate","videoCodec","audioCodec","audioSampleRate","audioChannels","authenticityData","takePhoto","captureFormat","flash","includeDepthData","aspectRatio","orientation","takeNativePhoto","originalPath","metadata","exif","tiff","DateTime","Make","Model","Software","destinationPath","xResolution","PixelXDimension","yResolution","PixelYDimension","Orientation","iso","ISOSpeedRatings","toString","exposureTime","ExposureTime","depthOfField","FNumber","focalLength","FocalLength","depthData","render","isActive","zoom","torch","exposure","depthEnabled","onOrientationChange","style","mergedFilmStyleOverrides","ref","flex","event","nativeEvent","dataHash","ext","extname","CacheDir","now","Math","random","slice","manifestEditor","contentKeyId","buffer","normalizedMetadata","indexOf","addPhotoMetadataAction","addVideoMetadataAction","assertion","deviceKeyId","addAssertion","app_id","appId","device_key_id","attestation","embedManifestToFile"],"sourceRoot":"../../src","sources":["camera.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/capture.js
CHANGED
|
@@ -55,7 +55,7 @@ export async function initCapture(settings) {
|
|
|
55
55
|
let deviceKeyId = await EncryptedStorage.getItem(`deviceKeyId-${settings.appId}`);
|
|
56
56
|
const contentPublicKey = await getContentPublicKey();
|
|
57
57
|
if (contentPublicKey.kty !== "EC") {
|
|
58
|
-
throw "Only EC public keys are supported";
|
|
58
|
+
throw new Error("Only EC public keys are supported");
|
|
59
59
|
}
|
|
60
60
|
const contentKeyId = getSecureEnclaveKeyId(contentPublicKey);
|
|
61
61
|
if (deviceKeyId == null) {
|
|
@@ -76,7 +76,7 @@ export async function initCapture(settings) {
|
|
|
76
76
|
await EncryptedStorage.setItem(`deviceKeyId-${settings.appId}`, deviceKeyId);
|
|
77
77
|
}
|
|
78
78
|
if (deviceKeyId == null) {
|
|
79
|
-
throw "
|
|
79
|
+
throw new Error("Failed to generate a device key");
|
|
80
80
|
}
|
|
81
81
|
let attestation = await EncryptedStorage.getItem(`attestation-${deviceKeyId}`);
|
|
82
82
|
if (attestation == null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["generateHardwareKey","getAttestation","EncryptedStorage","getContentPublicKey","getSecureEnclaveKeyId","buildSelfSignedCertificate","SelfSignedCertChain","ZCamera","NativeZcam1Capture","previewFile","filePath","ZPhoto","constructor","originalPath","path","initCapture","settings","deviceKeyId","getItem","appId","contentPublicKey","kty","contentKeyId","error","err","code","message","includes","console","warn","Date","now","setItem","attestation","updateRegistration","keyId","_settings"],"sourceRoot":"../../src","sources":["capture.tsx"],"mappings":";;AAAA,SAASA,mBAAmB,EAAEC,cAAc,QAAQ,mCAAmC;AACvF,OAAOC,gBAAgB,MAAM,gCAAgC;AAE7D,SAAqBC,mBAAmB,EAAEC,qBAAqB,QAAQ,aAAU;AACjF,SAASC,0BAA0B,EAAEC,mBAAmB,QAAQ,eAAY;;AAE5E;AACA;AACA;AACA,SAOEC,OAAO,QACF,aAAU;AAEjB,OAAOC,kBAAkB,MAAM,yBAAsB;;AAErD;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,WAAWA,CAACC,QAAgB,EAAiB;EACjE,OAAOF,kBAAkB,CAACC,WAAW,CAACC,QAAQ,CAAC;AACjD;;AAEA;AACA;AACA;;AAQA;AACA;AACA;;AAMA;AACA;AACA;;AASA;AACA;AACA;;AAMA;AACA;AACA;AACA,OAAO,MAAMC,MAAM,CAAC;EAIlBC,WAAWA,CAACC,YAAoB,EAAEC,IAAY,EAAE;IAC9C,IAAI,CAACD,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACC,IAAI,GAAGA,IAAI;EAClB;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,WAAWA,CAACC,QAAkB,EAAwB;EAC1E,IAAIC,WAAW,GAAG,MAAMf,gBAAgB,CAACgB,OAAO,CAAC,eAAeF,QAAQ,CAACG,KAAK,EAAE,CAAC;EAEjF,MAAMC,gBAAgB,GAAG,MAAMjB,mBAAmB,CAAC,CAAC;EAEpD,IAAIiB,gBAAgB,CAACC,GAAG,KAAK,IAAI,EAAE;IACjC,MAAM,mCAAmC;
|
|
1
|
+
{"version":3,"names":["generateHardwareKey","getAttestation","EncryptedStorage","getContentPublicKey","getSecureEnclaveKeyId","buildSelfSignedCertificate","SelfSignedCertChain","ZCamera","NativeZcam1Capture","previewFile","filePath","ZPhoto","constructor","originalPath","path","initCapture","settings","deviceKeyId","getItem","appId","contentPublicKey","kty","Error","contentKeyId","error","err","code","message","includes","console","warn","Date","now","setItem","attestation","updateRegistration","keyId","_settings"],"sourceRoot":"../../src","sources":["capture.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/common.js
CHANGED
package/lib/module/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["sha1","generate","getPublicKeyFixed","base64","base64nopad","base64url","base64urlnopad","CONTENT_KEY_TAG","flexibleBase64Decode","str","isUrlSafe","includes","hasPadding","decode","getContentPublicKey","catch","getSecureEnclaveKeyId","publicKey","kty","x","y","out","Uint8Array","length","set"],"sourceRoot":"../../src","sources":["common.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,yBAAyB;AAC9C,SAASC,QAAQ,EAAEC,iBAAiB,QAAwB,gCAAgC;AAC5F,SAASC,MAAM,EAAEC,WAAW,EAAEC,SAAS,EAAEC,cAAc,QAAQ,aAAa;AAE5E,MAAMC,eAAe,GAAG,uBAAuB;AAS/C;AACA;AACA,SAASC,oBAAoBA,CAACC,GAAW,EAAc;EACrD,MAAMC,SAAS,GAAGD,GAAG,CAACE,QAAQ,CAAC,GAAG,CAAC,IAAIF,GAAG,CAACE,QAAQ,CAAC,GAAG,CAAC;EACxD,MAAMC,UAAU,GAAGH,GAAG,CAACE,QAAQ,CAAC,GAAG,CAAC;EAEpC,IAAID,SAAS,EAAE;IACb,OAAOE,UAAU,GAAGP,SAAS,CAACQ,MAAM,CAACJ,GAAG,CAAC,GAAGH,cAAc,CAACO,MAAM,CAACJ,GAAG,CAAC;EACxE;EACA,OAAOG,UAAU,GAAGT,MAAM,CAACU,MAAM,CAACJ,GAAG,CAAC,GAAGL,WAAW,CAACS,MAAM,CAACJ,GAAG,CAAC;AAClE;AAEA,OAAO,eAAeK,mBAAmBA,CAAA,EAAuB;EAC9D,OAAO,MAAMZ,iBAAiB,CAACK,eAAe,CAAC,CAACQ,KAAK,CAAC,MAAM;IAC1D,OAAOd,QAAQ,CAACM,eAAe,CAAC;EAClC,CAAC,CAAC;AACJ;AAEA,OAAO,SAASS,qBAAqBA,CAACC,SAAgB,EAAc;EAClE,IAAIA,SAAS,CAACC,GAAG,KAAK,IAAI,EAAE;IAC1B,MAAMC,CAAC,GAAGX,oBAAoB,CAACS,SAAS,CAACE,CAAC,CAAC;IAC3C,MAAMC,CAAC,GAAGZ,oBAAoB,CAACS,SAAS,CAACG,CAAC,CAAC;IAE3C,MAAMC,GAAG,GAAG,IAAIC,UAAU,CAAC,CAAC,GAAGH,CAAC,CAACI,MAAM,GAAGH,CAAC,CAACG,MAAM,CAAC;IACnDF,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACfA,GAAG,CAACG,GAAG,CAACL,CAAC,EAAE,CAAC,CAAC;IACbE,GAAG,CAACG,GAAG,CAACJ,CAAC,EAAE,CAAC,GAAGD,CAAC,CAACI,MAAM,CAAC;IAExB,OAAOvB,IAAI,CAACqB,GAAG,CAAC;EAClB,CAAC,MAAM;IACL,MAAM,kBAAkB;
|
|
1
|
+
{"version":3,"names":["sha1","generate","getPublicKeyFixed","base64","base64nopad","base64url","base64urlnopad","CONTENT_KEY_TAG","flexibleBase64Decode","str","isUrlSafe","includes","hasPadding","decode","getContentPublicKey","catch","getSecureEnclaveKeyId","publicKey","kty","x","y","out","Uint8Array","length","set","Error"],"sourceRoot":"../../src","sources":["common.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,yBAAyB;AAC9C,SAASC,QAAQ,EAAEC,iBAAiB,QAAwB,gCAAgC;AAC5F,SAASC,MAAM,EAAEC,WAAW,EAAEC,SAAS,EAAEC,cAAc,QAAQ,aAAa;AAE5E,MAAMC,eAAe,GAAG,uBAAuB;AAS/C;AACA;AACA,SAASC,oBAAoBA,CAACC,GAAW,EAAc;EACrD,MAAMC,SAAS,GAAGD,GAAG,CAACE,QAAQ,CAAC,GAAG,CAAC,IAAIF,GAAG,CAACE,QAAQ,CAAC,GAAG,CAAC;EACxD,MAAMC,UAAU,GAAGH,GAAG,CAACE,QAAQ,CAAC,GAAG,CAAC;EAEpC,IAAID,SAAS,EAAE;IACb,OAAOE,UAAU,GAAGP,SAAS,CAACQ,MAAM,CAACJ,GAAG,CAAC,GAAGH,cAAc,CAACO,MAAM,CAACJ,GAAG,CAAC;EACxE;EACA,OAAOG,UAAU,GAAGT,MAAM,CAACU,MAAM,CAACJ,GAAG,CAAC,GAAGL,WAAW,CAACS,MAAM,CAACJ,GAAG,CAAC;AAClE;AAEA,OAAO,eAAeK,mBAAmBA,CAAA,EAAuB;EAC9D,OAAO,MAAMZ,iBAAiB,CAACK,eAAe,CAAC,CAACQ,KAAK,CAAC,MAAM;IAC1D,OAAOd,QAAQ,CAACM,eAAe,CAAC;EAClC,CAAC,CAAC;AACJ;AAEA,OAAO,SAASS,qBAAqBA,CAACC,SAAgB,EAAc;EAClE,IAAIA,SAAS,CAACC,GAAG,KAAK,IAAI,EAAE;IAC1B,MAAMC,CAAC,GAAGX,oBAAoB,CAACS,SAAS,CAACE,CAAC,CAAC;IAC3C,MAAMC,CAAC,GAAGZ,oBAAoB,CAACS,SAAS,CAACG,CAAC,CAAC;IAE3C,MAAMC,GAAG,GAAG,IAAIC,UAAU,CAAC,CAAC,GAAGH,CAAC,CAACI,MAAM,GAAGH,CAAC,CAACG,MAAM,CAAC;IACnDF,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACfA,GAAG,CAACG,GAAG,CAACL,CAAC,EAAE,CAAC,CAAC;IACbE,GAAG,CAACG,GAAG,CAACJ,CAAC,EAAE,CAAC,GAAGD,CAAC,CAACI,MAAM,CAAC;IAExB,OAAOvB,IAAI,CAACqB,GAAG,CAAC;EAClB,CAAC,MAAM;IACL,MAAM,IAAII,KAAK,CAAC,kBAAkB,CAAC;EACrC;AACF","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -7,7 +7,7 @@ export { AuthenticityData, AuthenticityStatus, authenticityStatus, buildSelfSign
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
export { ZCamera } from "./camera.js";
|
|
10
|
-
export { initCapture } from "./capture.js";
|
|
10
|
+
export { initCapture, previewFile } from "./capture.js";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Core cryptographic key types and secure enclave utilities.
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AuthenticityData","AuthenticityStatus","authenticityStatus","buildSelfSignedCertificate","C2paError","C2paError_Tags","Claim","computeHash","computeHashFromBuffer","DepthData","DepthDataStatistics","DeviceBindings","Exclusion","extractManifest","FilmStyleInfo","formatFromPath","Manifest","ManifestEditor","ManifestStore","PhotoMetadataInfo","Proof","SelfSignedCertChain","VerifyError","VerifyError_Tags","VideoMetadataInfo","ZCamera","initCapture","getContentPublicKey","getSecureEnclaveKeyId","privateDirectory","ZImagePicker","VerifiableFile"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAKA,SACEA,gBAAgB,EAChBC,kBAAkB,EAClBC,kBAAkB,EAClBC,0BAA0B,EAC1BC,SAAS,EACTC,cAAc,EACdC,KAAK,EACLC,WAAW,EACXC,qBAAqB,EACrBC,SAAS,EACTC,mBAAmB,EACnBC,cAAc,EACdC,SAAS,EACTC,eAAe,EACfC,aAAa,EACbC,cAAc,EACdC,QAAQ,EACRC,cAAc,EACdC,aAAa,EACbC,iBAAiB,EACjBC,KAAK,EACLC,mBAAmB,EACnBC,WAAW,EACXC,gBAAgB,EAChBC,iBAAiB,QACZ,eAAY;;AAEnB;AACA;AACA;;AAYA,SAASC,OAAO,QAAQ,aAAU;AAElC,SAASC,WAAW,QAAQ,cAAW;;
|
|
1
|
+
{"version":3,"names":["AuthenticityData","AuthenticityStatus","authenticityStatus","buildSelfSignedCertificate","C2paError","C2paError_Tags","Claim","computeHash","computeHashFromBuffer","DepthData","DepthDataStatistics","DeviceBindings","Exclusion","extractManifest","FilmStyleInfo","formatFromPath","Manifest","ManifestEditor","ManifestStore","PhotoMetadataInfo","Proof","SelfSignedCertChain","VerifyError","VerifyError_Tags","VideoMetadataInfo","ZCamera","initCapture","previewFile","getContentPublicKey","getSecureEnclaveKeyId","privateDirectory","ZImagePicker","VerifiableFile"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAKA,SACEA,gBAAgB,EAChBC,kBAAkB,EAClBC,kBAAkB,EAClBC,0BAA0B,EAC1BC,SAAS,EACTC,cAAc,EACdC,KAAK,EACLC,WAAW,EACXC,qBAAqB,EACrBC,SAAS,EACTC,mBAAmB,EACnBC,cAAc,EACdC,SAAS,EACTC,eAAe,EACfC,aAAa,EACbC,cAAc,EACdC,QAAQ,EACRC,cAAc,EACdC,aAAa,EACbC,iBAAiB,EACjBC,KAAK,EACLC,mBAAmB,EACnBC,WAAW,EACXC,gBAAgB,EAChBC,iBAAiB,QACZ,eAAY;;AAEnB;AACA;AACA;;AAYA,SAASC,OAAO,QAAQ,aAAU;AAElC,SAASC,WAAW,EAAEC,WAAW,QAAQ,cAAW;;AAEpD;AACA;AACA;;AAEA,SAASC,mBAAmB,EAAEC,qBAAqB,QAAQ,aAAU;AAGrE;AACA;AACA;AACA,SAASC,gBAAgB,EAAEC,YAAY,QAAQ,aAAU;;AAEzD;AACA;AACA;AACA;AACA,SAA+BC,cAAc,QAAQ,aAAU;;AAE/D;AACA;AACA","ignoreList":[]}
|
package/lib/module/picker.js
CHANGED
|
@@ -7,6 +7,7 @@ import { Dimensions, Image, StyleSheet, TouchableOpacity, View } from "react-nat
|
|
|
7
7
|
import { createThumbnail } from "react-native-create-thumbnail";
|
|
8
8
|
import { Dirs, FileSystem, Util } from "react-native-file-access";
|
|
9
9
|
import { AuthenticityStatus, authenticityStatus } from "./bindings.js";
|
|
10
|
+
import { stripFileProtocol } from "./utils.js";
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* Configuration for loading images from a private folder.
|
|
@@ -55,7 +56,7 @@ const ZImageItem = ({
|
|
|
55
56
|
const ext = Util.extname(uri)?.toLowerCase();
|
|
56
57
|
if (ext === "mov" || ext === "mp4") {
|
|
57
58
|
const thumbnail = await createThumbnail({
|
|
58
|
-
url: uri
|
|
59
|
+
url: stripFileProtocol(uri)
|
|
59
60
|
});
|
|
60
61
|
setThumbnail(thumbnail.path);
|
|
61
62
|
}
|