Browse Source

fix title view

Marino Faggiana 6 years ago
parent
commit
d8b5cc9146
2 changed files with 52 additions and 14 deletions
  1. 1 2
      iOSClient/Main/CCMain.m
  2. 51 12
      iOSClient/Utility/NCUtility.swift

+ 1 - 2
iOSClient/Main/CCMain.m

@@ -564,9 +564,8 @@
             UIImage *imageThemingLogo = [UIImage imageNamed:@"themingLogo"];
             _imageTitleHome = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 60, 30)]; // IMAGE = 120 x 60
             _imageTitleHome.contentMode = UIViewContentModeScaleAspectFill;
-            _imageTitleHome.clipsToBounds = YES;
+            //_imageTitleHome.clipsToBounds = YES;
             NSInteger multiplierImageTitleHome = 2;
-//            _imageTitleHome.backgroundColor = [UIColor redColor];
             
             NSString *fileNameThemingLogo = [NSString stringWithFormat:@"%@/%@-themingLogo.png", [CCUtility getDirectoryUserData], [CCUtility getStringUser:appDelegate.activeUser activeUrl:appDelegate.activeUrl]];
             UIImage *image = [UIImage imageWithContentsOfFile:fileNameThemingLogo];

+ 51 - 12
iOSClient/Utility/NCUtility.swift

@@ -186,22 +186,61 @@ class NCUtility: NSObject {
         let imageNamePath = CCUtility.getDirectoryUserData() + "/" + fileNamePNG
         
         if !FileManager.default.fileExists(atPath: imageNamePath) || rewrite == true {
-            guard let svgkImage: SVGKImage = SVGKImage(contentsOf: iconURL) else {
-                return
-            }
-            
-            if width != nil {
-                let scale = svgkImage.size.height / svgkImage.size.width
-                svgkImage.size = CGSize(width: width!, height: width! * scale)
-            }
             
-            guard let image: UIImage = svgkImage.uiImage else {
+            guard let imageData = try? Data(contentsOf:iconURL) else {
                 return
             }
-            guard let pngImageData = image.pngData() else {
-                return
+            
+            if let image = UIImage.init(data: imageData) {
+                
+                var newImage: UIImage = image
+                
+                if width != nil {
+                    
+                    let ratio = image.size.height / image.size.width
+                    let newSize = CGSize(width: width!, height: width! * ratio)
+                    
+                    if #available(iOS 10.0, *) {
+                        let renderFormat = UIGraphicsImageRendererFormat.default()
+                        renderFormat.opaque = false
+                        let renderer = UIGraphicsImageRenderer(size: CGSize(width: newSize.width, height: newSize.height), format: renderFormat)
+                        newImage = renderer.image {
+                            (context) in
+                            image.draw(in: CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height))
+                        }
+                    } else {
+                        UIGraphicsBeginImageContextWithOptions(CGSize(width: newSize.width, height: newSize.height), false, 0)
+                        image.draw(in: CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height))
+                        newImage = UIGraphicsGetImageFromCurrentImageContext()!
+                        UIGraphicsEndImageContext()
+                    }
+                }
+                
+                guard let pngImageData = newImage.pngData() else {
+                    return
+                }
+                CCUtility.write(pngImageData, fileNamePath: imageNamePath)
+                
+            } else {
+                
+                guard let svgImage: SVGKImage = SVGKImage(contentsOf: iconURL) else {
+                    return
+                }
+                
+                if width != nil {
+                    let scale = svgImage.size.height / svgImage.size.width
+                    svgImage.size = CGSize(width: width!, height: width! * scale)
+                }
+                
+                guard let image: UIImage = svgImage.uiImage else {
+                    return
+                }
+                guard let pngImageData = image.pngData() else {
+                    return
+                }
+                
+                CCUtility.write(pngImageData, fileNamePath: imageNamePath)
             }
-            CCUtility.write(pngImageData, fileNamePath: imageNamePath)
         }
     }
 }