From 784919618a7b134536b20312f3908c4d2df7fd02 Mon Sep 17 00:00:00 2001 From: fummicc1 Date: Sat, 19 Oct 2024 12:48:16 +0900 Subject: [PATCH] fix: Consider font size difference between macOS and iOS. iOS image resolution is fit with device. --- Fixtures/outputs/category.png | Bin 64360 -> 85164 bytes Sources/Csv2ImgCore/ImageMaker.swift | 6 +- Sources/Csv2ImgCore/ImageRenderer.swift | 2 +- Sources/Csv2ImgCore/PdfMaker.swift | 9 +- Sources/Csv2ImgCore/String+Ex.swift | 38 ++-- Tests/Csv2ImgCoreTests/ImageMakerTests.swift | 198 +++++++++++++------ Tests/Csv2ImgCoreTests/String+ExTests.swift | 28 +++ 7 files changed, 197 insertions(+), 84 deletions(-) create mode 100644 Tests/Csv2ImgCoreTests/String+ExTests.swift diff --git a/Fixtures/outputs/category.png b/Fixtures/outputs/category.png index ec0c22177f4e85c64ff19d59c4164b270f14cdc2..3a3015cecf11d730f7eab2876d803719a50e6481 100644 GIT binary patch literal 85164 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
+ClrX%sk)ArskC1NOEh#9?Vw> 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 a)0=oHPlAWMaGX1skCL3aZ29Z=AN~(K#7N`- literal 64360 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ⅈfMXb}FjHw^oeN(fCF6G4@E{O}*}3mR;v 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 diff --git a/Sources/Csv2ImgCore/ImageMaker.swift b/Sources/Csv2ImgCore/ImageMaker.swift index 7a56799..6de9a3c 100644 --- a/Sources/Csv2ImgCore/ImageMaker.swift +++ b/Sources/Csv2ImgCore/ImageMaker.swift @@ -74,11 +74,13 @@ final class ImageMaker: ImageMakerType { throw ImageMakingError.noContextAvailable } #elseif os(iOS) - UIGraphicsBeginImageContext( + UIGraphicsBeginImageContextWithOptions( CGSize( width: width, height: height - ) + ), + true, + 0 ) guard let context = UIGraphicsGetCurrentContext() else { throw ImageMakingError.noContextAvailable diff --git a/Sources/Csv2ImgCore/ImageRenderer.swift b/Sources/Csv2ImgCore/ImageRenderer.swift index b5638ed..3c716f1 100644 --- a/Sources/Csv2ImgCore/ImageRenderer.swift +++ b/Sources/Csv2ImgCore/ImageRenderer.swift @@ -71,7 +71,7 @@ public class ImageRenderer { context: CGContext, text: String, frame: CGRect, style: Csv.Column.Style, fontSize: CGFloat ) { let attributes: [NSAttributedString.Key: Any] = [ - .font: Font.systemFont(ofSize: fontSize), + .font: text.getFont(ofSize: fontSize), .foregroundColor: style.displayableColor(), ] diff --git a/Sources/Csv2ImgCore/PdfMaker.swift b/Sources/Csv2ImgCore/PdfMaker.swift index 72beb28..495f479 100644 --- a/Sources/Csv2ImgCore/PdfMaker.swift +++ b/Sources/Csv2ImgCore/PdfMaker.swift @@ -591,9 +591,7 @@ extension PdfMaker { let str = NSAttributedString( string: text, attributes: [ - .font: Font.systemFont( - ofSize: fontSize - ), + .font: text.getFont(ofSize: fontSize), .foregroundColor: style.displayableColor(), ] ) @@ -717,10 +715,7 @@ extension PdfMaker { let str = NSAttributedString( string: column.name, attributes: [ - .font: Font.systemFont( - ofSize: fontSize, - weight: .bold - ), + .font: column.name.getFont(ofSize: fontSize), .foregroundColor: column.style.displayableColor(), ] ) diff --git a/Sources/Csv2ImgCore/String+Ex.swift b/Sources/Csv2ImgCore/String+Ex.swift index b800c62..f280a72 100644 --- a/Sources/Csv2ImgCore/String+Ex.swift +++ b/Sources/Csv2ImgCore/String+Ex.swift @@ -1,26 +1,30 @@ import Foundation - -#if canImport(AppKit) - import AppKit - typealias Font = NSFont -#elseif canImport(UIKit) - import UIKit - typealias Font = UIFont -#endif +import CoreText extension String { func getSize( fontSize: Double ) -> CGSize { - (self as NSString) - .size( - withAttributes: [ - .font: Font.systemFont( - ofSize: fontSize, - weight: .bold - ) - ] - ) + // Calculate the size of the string using CoreText + let font = getFont(ofSize: fontSize) + let attrString = NSAttributedString( + string: self, + attributes: [ + .font: font + ]) + let size = attrString.size() + return CGSize( + width: Int(size.width), + height: Int(size.height) + ) + } + + func getFont(ofSize fontSize: CGFloat) -> CTFont { + CTFontCreateWithName( + "San Francisco" as CFString, + fontSize, + nil + ) } } diff --git a/Tests/Csv2ImgCoreTests/ImageMakerTests.swift b/Tests/Csv2ImgCoreTests/ImageMakerTests.swift index 89438af..f26c43d 100644 --- a/Tests/Csv2ImgCoreTests/ImageMakerTests.swift +++ b/Tests/Csv2ImgCoreTests/ImageMakerTests.swift @@ -20,63 +20,124 @@ class ImageMakerTests: XCTestCase { Csv.Column.Style(color: Color.blue.cgColor), ] ) - let expectedImageRepresentation = CsvImageRepresentation( - width: 546, - height: 160, - backgroundColor: CGColor(red: 0.980392, green: 0.980392, blue: 0.980392, alpha: 1), - fontSize: 12.0, - columns: [ - CsvImageRepresentation.ColumnRepresentation( - name: "name", - style: Csv.Column.Style(color: Color.blue.cgColor, applyOnlyColumn: false), - frame: CGRect(x: 8.0, y: 12.0, width: 158.0, height: 25.0)), - CsvImageRepresentation.ColumnRepresentation( - name: "beginnerValue", - style: Csv.Column.Style(color: Color.blue.cgColor, applyOnlyColumn: false), - frame: CGRect(x: 174.0, y: 12.0, width: 106.0, height: 25.0)), - CsvImageRepresentation.ColumnRepresentation( - name: "middleValue", - style: Csv.Column.Style(color: Color.blue.cgColor, applyOnlyColumn: false), - frame: CGRect(x: 288.0, y: 12.0, width: 93.0, height: 25.0)), - CsvImageRepresentation.ColumnRepresentation( - name: "expertValue", - style: Csv.Column.Style(color: Color.blue.cgColor, applyOnlyColumn: false), - frame: CGRect(x: 389.0, y: 12.0, width: 92.0, height: 25.0)), - CsvImageRepresentation.ColumnRepresentation( - name: "unit", - style: Csv.Column.Style(color: Color.blue.cgColor, applyOnlyColumn: false), - frame: CGRect(x: 489.0, y: 12.0, width: 49.0, height: 25.0)), - ], - rows: [ - CsvImageRepresentation.RowRepresentation( - values: ["Requirements Analysis", "1.00", "1.00", "1.00", "H"], - frames: [ - CGRect(x: 8.0, y: 49.0, width: 158.0, height: 25.0), - CGRect(x: 174.0, y: 49.0, width: 106.0, height: 25.0), - CGRect(x: 288.0, y: 49.0, width: 93.0, height: 25.0), - CGRect(x: 389.0, y: 49.0, width: 92.0, height: 25.0), - CGRect(x: 489.0, y: 49.0, width: 49.0, height: 25.0), - ]), - CsvImageRepresentation.RowRepresentation( - values: ["Concept Design", "0.10", "0.50", "1.00", "H"], - frames: [ - CGRect(x: 8.0, y: 86.0, width: 158.0, height: 25.0), - CGRect(x: 174.0, y: 86.0, width: 106.0, height: 25.0), - CGRect(x: 288.0, y: 86.0, width: 93.0, height: 25.0), - CGRect(x: 389.0, y: 86.0, width: 92.0, height: 25.0), - CGRect(x: 489.0, y: 86.0, width: 49.0, height: 25.0), - ]), - CsvImageRepresentation.RowRepresentation( - values: ["Detail Design", "0.10", "0.50", "1.00", "page"], - frames: [ - CGRect(x: 8.0, y: 123.0, width: 158.0, height: 25.0), - CGRect(x: 174.0, y: 123.0, width: 106.0, height: 25.0), - CGRect(x: 288.0, y: 123.0, width: 93.0, height: 25.0), - CGRect(x: 389.0, y: 123.0, width: 92.0, height: 25.0), - CGRect(x: 489.0, y: 123.0, width: 49.0, height: 25.0), - ]), - ] - ) + let expectedImageRepresentation: CsvImageRepresentation + #if os(iOS) + expectedImageRepresentation = CsvImageRepresentation( + width: 500, + height: 152, + backgroundColor: CGColor(red: 0.980392, green: 0.980392, blue: 0.980392, alpha: 1), + fontSize: 12.0, + columns: [ + CsvImageRepresentation.ColumnRepresentation( + name: "name", + style: Csv.Column.Style(color: Color.blue.cgColor, applyOnlyColumn: false), + frame: CGRect(x: 8.0, y: 12.0, width: 142.0, height: 23.0)), + CsvImageRepresentation.ColumnRepresentation( + name: "beginnerValue", + style: Csv.Column.Style(color: Color.blue.cgColor, applyOnlyColumn: false), + frame: CGRect(x: 158.0, y: 12.0, width: 96.0, height: 23.0)), + CsvImageRepresentation.ColumnRepresentation( + name: "middleValue", + style: Csv.Column.Style(color: Color.blue.cgColor, applyOnlyColumn: false), + frame: CGRect(x: 262.0, y: 12.0, width: 85.0, height: 23.0)), + CsvImageRepresentation.ColumnRepresentation( + name: "expertValue", + style: Csv.Column.Style(color: Color.blue.cgColor, applyOnlyColumn: false), + frame: CGRect(x: 355.0, y: 12.0, width: 83.0, height: 23.0)), + CsvImageRepresentation.ColumnRepresentation( + name: "unit", + style: Csv.Column.Style(color: Color.blue.cgColor, applyOnlyColumn: false), + frame: CGRect(x: 446.0, y: 12.0, width: 46.0, height: 23.0)), + ], + rows: [ + CsvImageRepresentation.RowRepresentation( + values: ["Requirements Analysis", "1.00", "1.00", "1.00", "H"], + frames: [ + CGRect(x: 8.0, y: 47.0, width: 142.0, height: 23.0), + CGRect(x: 158.0, y: 47.0, width: 96.0, height: 23.0), + CGRect(x: 262.0, y: 47.0, width: 85.0, height: 23.0), + CGRect(x: 355.0, y: 47.0, width: 83.0, height: 23.0), + CGRect(x: 446.0, y: 47.0, width: 46.0, height: 23.0), + ]), + CsvImageRepresentation.RowRepresentation( + values: ["Concept Design", "0.10", "0.50", "1.00", "H"], + frames: [ + CGRect(x: 8.0, y: 82.0, width: 142.0, height: 23.0), + CGRect(x: 158.0, y: 82.0, width: 96.0, height: 23.0), + CGRect(x: 262.0, y: 82.0, width: 85.0, height: 23.0), + CGRect(x: 355.0, y: 82.0, width: 83.0, height: 23.0), + CGRect(x: 446.0, y: 82.0, width: 46.0, height: 23.0), + ]), + CsvImageRepresentation.RowRepresentation( + values: ["Detail Design", "0.10", "0.50", "1.00", "page"], + frames: [ + CGRect(x: 8.0, y: 117.0, width: 142.0, height: 23.0), + CGRect(x: 158.0, y: 117.0, width: 96.0, height: 23.0), + CGRect(x: 262.0, y: 117.0, width: 85.0, height: 23.0), + CGRect(x: 355.0, y: 117.0, width: 83.0, height: 23.0), + CGRect(x: 446.0, y: 117.0, width: 46.0, height: 23.0), + ]), + ] + ) + #elseif os(macOS) + expectedImageRepresentation = CsvImageRepresentation( + width: 500, + height: 148, + backgroundColor: CGColor(red: 0.980392, green: 0.980392, blue: 0.980392, alpha: 1), + fontSize: 12.0, + columns: [ + CsvImageRepresentation.ColumnRepresentation( + name: "name", + style: Csv.Column.Style(color: Color.blue.cgColor, applyOnlyColumn: false), + frame: CGRect(x: 8.0, y: 12.0, width: 142.0, height: 22.0)), + CsvImageRepresentation.ColumnRepresentation( + name: "beginnerValue", + style: Csv.Column.Style(color: Color.blue.cgColor, applyOnlyColumn: false), + frame: CGRect(x: 158.0, y: 12.0, width: 96.0, height: 22.0)), + CsvImageRepresentation.ColumnRepresentation( + name: "middleValue", + style: Csv.Column.Style(color: Color.blue.cgColor, applyOnlyColumn: false), + frame: CGRect(x: 262.0, y: 12.0, width: 85.0, height: 22.0)), + CsvImageRepresentation.ColumnRepresentation( + name: "expertValue", + style: Csv.Column.Style(color: Color.blue.cgColor, applyOnlyColumn: false), + frame: CGRect(x: 355.0, y: 12.0, width: 83.0, height: 22.0)), + CsvImageRepresentation.ColumnRepresentation( + name: "unit", + style: Csv.Column.Style(color: Color.blue.cgColor, applyOnlyColumn: false), + frame: CGRect(x: 446.0, y: 12.0, width: 46.0, height: 22.0)), + ], + rows: [ + CsvImageRepresentation.RowRepresentation( + values: ["Requirements Analysis", "1.00", "1.00", "1.00", "H"], + frames: [ + CGRect(x: 8.0, y: 46.0, width: 142.0, height: 22.0), + CGRect(x: 158.0, y: 46.0, width: 96.0, height: 22.0), + CGRect(x: 262.0, y: 46.0, width: 85.0, height: 22.0), + CGRect(x: 355.0, y: 46.0, width: 83.0, height: 22.0), + CGRect(x: 446.0, y: 46.0, width: 46.0, height: 22.0), + ]), + CsvImageRepresentation.RowRepresentation( + values: ["Concept Design", "0.10", "0.50", "1.00", "H"], + frames: [ + CGRect(x: 8.0, y: 80.0, width: 142.0, height: 22.0), + CGRect(x: 158.0, y: 80.0, width: 96.0, height: 22.0), + CGRect(x: 262.0, y: 80.0, width: 85.0, height: 22.0), + CGRect(x: 355.0, y: 80.0, width: 83.0, height: 22.0), + CGRect(x: 446.0, y: 80.0, width: 46.0, height: 22.0), + ]), + CsvImageRepresentation.RowRepresentation( + values: ["Detail Design", "0.10", "0.50", "1.00", "page"], + frames: [ + CGRect(x: 8.0, y: 114.0, width: 142.0, height: 22.0), + CGRect(x: 158.0, y: 114.0, width: 96.0, height: 22.0), + CGRect(x: 262.0, y: 114.0, width: 85.0, height: 22.0), + CGRect(x: 355.0, y: 114.0, width: 83.0, height: 22.0), + CGRect(x: 446.0, y: 114.0, width: 46.0, height: 22.0), + ]), + ] + ) + #endif let imageMaker = ImageMaker(maximumRowCount: nil, fontSize: 12) let columns = await csv.columns let rows = await csv.rows @@ -124,4 +185,27 @@ class ImageMakerTests: XCTestCase { XCTAssertEqual(actual.frames, expected.frames) } } + + func testMakeImage() async throws { + // Given + let outputFileURL = getRelativeFilePathFromPackageSource( + path: "Fixtures/outputs/category.png" + ) + let csv = Csv.loadFromString( + """ + name,beginnerValue,middleValue,expertValue,unit + Requirements Analysis,1.00,1.00,1.00,H + Concept Design,0.10,0.50,1.00,H + Detail Design,0.10,0.50,1.00,page + """ + ) + let imageMaker = ImageMaker(maximumRowCount: nil, fontSize: 12) + let columns = await csv.columns + let rows = await csv.rows + // When + let image = try imageMaker.make(columns: columns, rows: rows) { double in + } + // Then + try image.convertToData()?.write(to: outputFileURL, options: .atomic) + } } diff --git a/Tests/Csv2ImgCoreTests/String+ExTests.swift b/Tests/Csv2ImgCoreTests/String+ExTests.swift new file mode 100644 index 0000000..e21b8fc --- /dev/null +++ b/Tests/Csv2ImgCoreTests/String+ExTests.swift @@ -0,0 +1,28 @@ +// +// String+ExTests.swift +// Csv2Img +// +// Created by Fumiya Tanaka on 2024/10/19. +// + +import XCTest + +@testable import Csv2ImgCore + +class StringExtensionTests: XCTestCase { + func testGetSize() throws { + let sut = "Hello World" + let fontSize: CGFloat = 12 + + // Because font system is different between iOS and macOS, + // calculation logic might be different and result font size differs. + #if os(iOS) + let expected = CGSize(width: 61, height: 13) + #elseif os(macOS) + let expected = CGSize(width: 61, height: 12) + #endif + + let actual = sut.getSize(fontSize: fontSize) + XCTAssertEqual(actual, expected) + } +}