         imageView.layer.cornerRadius = 5
         imageView.layer.masksToBounds = true
         view.addSubview(imageView)
-        if image?.isGIF == true {
-            if let dataGIF = image?.data as? Data,
-                let source = CGImageSourceCreateWithData(dataGIF as CFData, nil) {
-                let images = source.toCGImages().map(UIImage.init(cgImage:))
-                imageView.animationImages = images
-                imageView.startAnimating()
-            }
-        } else {
-            imageView.image = image?.data as? UIImage
-        }
-
+        switch image {
+        case .gif(let dataGIF)?:
+            guard let source = CGImageSourceCreateWithData(dataGIF as CFData, nil)
+                else { break }
+            let images = source.toCGImages().map(UIImage.init(cgImage:))
+            imageView.animationImages = images
+            imageView.startAnimating()
+        case .normal(let uiImage)?:
+            imageView.image = uiImage
+        default:
+            imageView.image = nil
+        }
+        
         backButton.setTitle("Back", for: .normal)
         backButton.setTitleColor(.white, for: .normal)
         backButton.layer.borderColor = UIColor.white.cgColor


        switch titleCurrent {
        case "watermark":
            watermark = EFImage(finalImage)
            
            var images = [EFImage]()
            if let imageUrl = info[.referenceURL] as? URL,
                let asset = PHAsset.fetchAssets(withALAssetURLs: [imageUrl], options: nil).lastObject {
                images = selectedAlbumPhotosIncludingGifWithPHAssets(assets: [asset])
            }
            if let tryGIF = images.first(where: { $0.isGIF }) {
                watermark = tryGIF
            }
        case "icon":
            icon = finalImage

            [weak self] in
            guard let self = self else { return }
            var assetChangeRequest: PHAssetChangeRequest?
            switch image {
            case .gif:
                guard let fileURL = EFQRCode.tempResultPath else {
                    finish?("EFQRCode.tempResultPath is nil!")
                    return
                }
                assetChangeRequest = .creationRequestForAssetFromImage(atFileURL: fileURL)
            case .normal(let image):
                assetChangeRequest = .creationRequestForAsset(from: image)
            }
            if let assetPlaceHolder = assetChangeRequest?.placeholderForCreatedAsset {
