@@ -49,6 +49,9 @@ struct FullScreenImageView<CloseButtonStyle: ButtonStyle>: View {
4949 predictedOffset = value. predictedEndTranslation
5050 }
5151 }
52+ @State private var image = UIImage ( )
53+ @State private var showShareSheet = false
54+
5255 private var buttons : some View {
5356 HStack {
5457 Button {
@@ -63,10 +66,19 @@ struct FullScreenImageView<CloseButtonStyle: ButtonStyle>: View {
6366 }
6467 . buttonStyle ( closeButtonStyle)
6568 . opacity ( backgroundOpacity)
66- if let processedImage = Image ( uiImage: watermarkImage ( baseImage: baseImage ?? UIImage ( ) , watermarkImage: watermark ?? UIImage ( ) ) ?? UIImage ( ) ) {
67- ShareLink ( item: processedImage, preview: SharePreview ( " Weather Report: Future Radar " , image: processedImage) )
69+ Button {
70+ // Share watermarked image
71+ let watermarked = watermarkImage ( baseImage: baseImage ?? UIImage ( ) , watermarkImage: watermark ?? UIImage ( ) )
72+ self . image = watermarked ?? baseImage ?? UIImage ( )
73+ showShareSheet = true
74+ } label: {
75+ Image ( systemName: " square.and.arrow.up " )
76+ . font ( . title)
77+ . accessibilityLabel ( " Share " )
78+ . contentShape ( Rectangle ( ) )
6879 }
69-
80+ . buttonStyle ( closeButtonStyle)
81+ . opacity ( backgroundOpacity)
7082 }
7183 }
7284
@@ -110,6 +122,9 @@ struct FullScreenImageView<CloseButtonStyle: ButtonStyle>: View {
110122 buttons
111123 , alignment: . topLeading
112124 )
125+ . sheet ( isPresented: $showShareSheet, content: {
126+ ActivityView ( activityItems: [ image] as [ Any ] , applicationActivities: nil )
127+ } )
113128 . opacity ( imageOpacity)
114129 . onAppear ( perform: onAppear)
115130 . onDisappear ( perform: onDisappear)
@@ -181,8 +196,8 @@ func watermarkImage(baseImage: UIImage, watermarkImage: UIImage) -> UIImage? {
181196 // Draw the base image
182197 baseImage. draw ( at: . zero)
183198
184- // Define the scale as 10 % of the base image's shorter dimension
185- let scale = 0.1
199+ // Define the scale as 35 % of the base image's shorter dimension
200+ let scale = 0.35
186201 let watermarkAspect = watermarkImage. size. width / watermarkImage. size. height
187202 var watermarkHeight = min ( baseImage. size. width, baseImage. size. height) * scale
188203 var watermarkWidth = watermarkHeight * watermarkAspect
@@ -201,7 +216,7 @@ func watermarkImage(baseImage: UIImage, watermarkImage: UIImage) -> UIImage? {
201216 let watermarkRect = CGRect ( x: watermarkX, y: watermarkY, width: watermarkWidth, height: watermarkHeight)
202217
203218 // Draw the watermark image
204- watermarkImage. draw ( in: watermarkRect, blendMode: . normal, alpha: 0.5 ) // Adjust alpha as desired
219+ watermarkImage. draw ( in: watermarkRect, blendMode: . normal, alpha: 0.85 ) // Adjust alpha as desired
205220 }
206221
207222 return watermarkedImage
0 commit comments