Quentin Bandera c8cfe82109
Some checks failed
gitea-openium/resgen.swift/pipeline/head There was a failure building this commit
gitea-openium/resgen.swift/pipeline/pr-master There was a failure building this commit
DEVTOOLS-185 Remplacer le json en dur des images resgen
2024-04-19 12:17:01 +02:00

97 lines
2.5 KiB
Swift

//
// ParsedImage.swift
//
//
// Created by Thibaut Schmitt on 24/01/2022.
//
import Foundation
struct ParsedImage {
let name: String
let tags: String
let width: Int
let height: Int
// MARK: - Convert
var convertArguments: (x1: ConvertArgument, x2: ConvertArgument, x3: ConvertArgument) {
var width1x = ""
var height1x = ""
var width2x = ""
var height2x = ""
var width3x = ""
var height3x = ""
if width != -1 {
width1x = "\(width)"
width2x = "\(width * 2)"
width3x = "\(width * 3)"
}
if height != -1 {
height1x = "\(height)"
height2x = "\(height * 2)"
height3x = "\(height * 3)"
}
return (x1: ConvertArgument(width: width1x, height: height1x),
x2: ConvertArgument(width: width2x, height: height2x),
x3: ConvertArgument(width: width3x, height: height3x))
}
// MARK: - Assets
var contentJson: String? {
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
guard let data = try? encoder.encode(imageContent) else { return nil }
return String(data: data, encoding: .utf8)
}
var imageContent: ImageContent {
return ImageContent(
images: [
Image(
idiom: "universal",
scale: "1x",
filename: "\(name).\(XcassetsGenerator.outputImageExtension)"
),
Image(
idiom: "universal",
scale: "2x",
filename: "\(name)@2x.\(XcassetsGenerator.outputImageExtension)"
),
Image(
idiom: "universal",
scale: "3x",
filename: "\(name)@3x.\(XcassetsGenerator.outputImageExtension)"
)
],
info: Info(
version: 1,
author: "ResgenSwift-Imagium"
)
)
}
// MARK: - Extension property
func getImageProperty(isStatic: Bool, isSwiftUI: Bool) -> String {
if isSwiftUI {
return """
\(isStatic ? "static ": "")var \(name): Image {
Image("\(name)")
}
"""
}
return """
\(isStatic ? "static ": "")var \(name): UIImage {
UIImage(named: "\(name)")!
}
"""
}
}