From 95f7b239764170854fe5fd23b90b592f085c10e6 Mon Sep 17 00:00:00 2001 From: fummicc1 Date: Wed, 16 Oct 2024 23:23:12 +0900 Subject: [PATCH 1/7] chore: show .vscode --- .gitignore | 1 - .vscode/launch.json | 22 ++++++++++++++++++++++ .vscode/settings.json | 21 +++++++++++++++++++++ 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json diff --git a/.gitignore b/.gitignore index de1722a..529e8e8 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,5 @@ xcuserdata/ DerivedData/ .netrc -.vscode .index-build/ \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..e02c8b2 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,22 @@ +{ + "configurations": [ + { + "type": "swift-lldb", + "request": "launch", + "name": "Debug Csv2ImgCmd", + "program": "${workspaceFolder:Csv2Img}/.build/debug/Csv2ImgCmd", + "args": [], + "cwd": "${workspaceFolder:Csv2Img}", + "preLaunchTask": "swift: Build Debug Csv2ImgCmd" + }, + { + "type": "swift-lldb", + "request": "launch", + "name": "Release Csv2ImgCmd", + "program": "${workspaceFolder:Csv2Img}/.build/release/Csv2ImgCmd", + "args": [], + "cwd": "${workspaceFolder:Csv2Img}", + "preLaunchTask": "swift: Build Release Csv2ImgCmd" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..8551408 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,21 @@ +{ + "editor.formatOnSave": true, + "swift.diagnostics": true, + "apple-swift-format.enable": true, + "swift.autoGenerateLaunchConfigurations": true, + "swift.buildArguments": [], + "swift.testEnvironmentVariables": {}, + "[swift]": { + "editor.tabSize": 4, + "editor.insertSpaces": true + }, + "editor.formatOnSaveMode": "file", + "editor.defaultFormatter": "vknabel.vscode-apple-swift-format", + "makefile.configureOnOpen": false, + "swift.sourcekit-lsp.serverArguments": [ + "-Xswiftc", + "-sdk", + "-Xswiftc", + "/Applications/Xcode-16.0.0.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk", + ] +} From ca9cb1bad2155e0d84256e464e7c4c52374cc534 Mon Sep 17 00:00:00 2001 From: fummicc1 Date: Wed, 16 Oct 2024 23:23:35 +0900 Subject: [PATCH 2/7] feat: Define ImageRenderer and separate build logic and render logic in generating image. --- Sources/Csv2ImgCore/Csv.swift | 29 +- Sources/Csv2ImgCore/CsvError.swift | 2 + .../Csv2ImgCore/CsvImageRepresentation.swift | 22 ++ Sources/Csv2ImgCore/ImageMaker.swift | 298 +++++------------- Sources/Csv2ImgCore/ImageRenderer.swift | 78 +++++ 5 files changed, 188 insertions(+), 241 deletions(-) create mode 100644 Sources/Csv2ImgCore/CsvImageRepresentation.swift create mode 100644 Sources/Csv2ImgCore/ImageRenderer.swift diff --git a/Sources/Csv2ImgCore/Csv.swift b/Sources/Csv2ImgCore/Csv.swift index 20ae5c3..ab3ef11 100644 --- a/Sources/Csv2ImgCore/Csv.swift +++ b/Sources/Csv2ImgCore/Csv.swift @@ -507,45 +507,32 @@ extension Csv { } if let maker = maker as? ImageMaker { if let fontSize = fontSize { - maker.set( - fontSize: fontSize - ) + maker.set(fontSize: fontSize) } - let exportable: any CsvExportable = try await withCheckedThrowingContinuation { + let image: CGImage = try await withCheckedThrowingContinuation { continuation in queue.async { [weak self] in guard let self = self else { - continuation.resume( - throwing: Csv.Error.underlying( - nil - ) - ) + continuation.resume(throwing: Csv.Error.underlying(nil)) return } Task { do { - let img = try maker.make( + let image = try maker.make( columns: await self.columns, rows: await self.rows ) { progress in self.progressSubject.value = progress } - continuation.resume( - returning: img - ) + continuation.resume(returning: image) } catch { - continuation.resume( - throwing: Csv.Error.underlying( - error - ) - ) + continuation.resume(throwing: Csv.Error.underlying(error)) } } } } - return AnyCsvExportable( - exportable - ) + + return AnyCsvExportable(image) } else if let maker = maker as? PdfMaker { if let fontSize = fontSize { maker.set( diff --git a/Sources/Csv2ImgCore/CsvError.swift b/Sources/Csv2ImgCore/CsvError.swift index 9288799..ac84e67 100644 --- a/Sources/Csv2ImgCore/CsvError.swift +++ b/Sources/Csv2ImgCore/CsvError.swift @@ -34,6 +34,8 @@ extension Csv { case emptyData /// Csv denied execution because it is generating another contents. case workInProgress + /// Failed to render image from `CsvImageRepresentation`. + case failedToRenderImage case underlying( Swift.Error? ) diff --git a/Sources/Csv2ImgCore/CsvImageRepresentation.swift b/Sources/Csv2ImgCore/CsvImageRepresentation.swift new file mode 100644 index 0000000..cfead4e --- /dev/null +++ b/Sources/Csv2ImgCore/CsvImageRepresentation.swift @@ -0,0 +1,22 @@ +import CoreGraphics +import Foundation + +public struct CsvImageRepresentation: Equatable { + let width: Int + let height: Int + let backgroundColor: CGColor + let fontSize: CGFloat + let columns: [ColumnRepresentation] + let rows: [RowRepresentation] + + struct ColumnRepresentation: Equatable { + let name: String + let style: Csv.Column.Style + let frame: CGRect + } + + struct RowRepresentation: Equatable { + let values: [String] + let frames: [CGRect] + } +} diff --git a/Sources/Csv2ImgCore/ImageMaker.swift b/Sources/Csv2ImgCore/ImageMaker.swift index 7ce711c..618c4dc 100644 --- a/Sources/Csv2ImgCore/ImageMaker.swift +++ b/Sources/Csv2ImgCore/ImageMaker.swift @@ -58,13 +58,40 @@ final class ImageMaker: ImageMakerType { } /// generate png-image data from ``Csv``. - func make( + internal func make( columns: [Csv.Column], rows: [Csv.Row], progress: @escaping ( Double ) -> Void ) throws -> CGImage { + let representation = try build(columns: columns, rows: rows, progress: progress) + guard + let context = CGContext( + data: nil, + width: representation.width, + height: representation.height, + bitsPerComponent: 8, + bytesPerRow: 0, + space: CGColorSpaceCreateDeviceRGB(), + bitmapInfo: CGImageAlphaInfo.premultipliedLast.rawValue + ) + else { + throw ImageMakingError.noContextAvailable + } + guard let image = ImageRenderer().render(context: context, representation) else { + throw ImageMakingError.failedCreateImage(context) + } + return image + } + + internal func build( + columns: [Csv.Column], + rows: [Csv.Row], + progress: @escaping ( + Double + ) -> Void + ) throws -> CsvImageRepresentation { let length = min( maximumRowCount ?? rows.count, @@ -112,245 +139,76 @@ final class ImageMaker: ImageMakerType { longestHeight ) + verticalSpace) - #if os(macOS) - let canvas = NSImage( - size: NSSize( - width: width, - height: height - ) - ) - canvas.lockFocus() - guard let context = NSGraphicsContext.current?.cgContext else { - throw ImageMakingError.noContextAvailable - } - #elseif os(iOS) - UIGraphicsBeginImageContext( - CGSize( - width: width, - height: height - ) - ) - guard let context = UIGraphicsGetCurrentContext() else { - throw ImageMakingError.noContextAvailable - } - #endif - - defer { - #if os(macOS) - canvas.unlockFocus() - #elseif os(iOS) - UIGraphicsEndImageContext() - #endif - } - - context.setFillColor( - CGColor( - red: 250 / 255, - green: 250 / 255, - blue: 250 / 255, - alpha: 1 - ) - ) - context.fill( - CGRect( - origin: .zero, - size: CGSize( - width: width, - height: height - ) - ) - ) + let backgroundColor = CGColor(red: 250 / 255, green: 250 / 255, blue: 250 / 255, alpha: 1) - context.setLineWidth( - 1 - ) - #if os(macOS) - context.setStrokeColor( - Color.separatorColor.cgColor - ) - #elseif os(iOS) - context.setStrokeColor( - Color.separator.cgColor - ) - #endif - context.setFillColor( - CGColor( - red: 22 / 255, - green: 22 / 255, - blue: 22 / 255, - alpha: 1 - ) - ) + let columnWidth = width / columns.count + let rowHeight = height / (rows.count + 1) - let columnCount = columns.count - let rowCount = rows.count + 1 - let rowHeight = - Int( - height - ) / rowCount - let columnWidth = - Int( - width - ) / columnCount + var columnRepresentations: [CsvImageRepresentation.ColumnRepresentation] = [] + var rowRepresentations: [CsvImageRepresentation.RowRepresentation] = [] - let completeCount: Double = Double( - rowCount + columnCount - ) + let completeCount: Double = Double(rows.count + columns.count) var completeFraction: Double = 0 - for i in 0.. CGImage? { + let width = representation.width + let height = representation.height + + context.setFillColor(representation.backgroundColor) + context.fill(CGRect(x: 0, y: 0, width: width, height: height)) + + // Draw grid lines + context.setLineWidth(1) + context.setStrokeColor(CGColor(gray: 0.8, alpha: 1)) + + for column in representation.columns { + context.move(to: CGPoint(x: column.frame.minX, y: 0)) + context.addLine(to: CGPoint(x: Int(column.frame.minX), y: height)) + } + context.move(to: CGPoint(x: width, y: 0)) + context.addLine(to: CGPoint(x: width, y: height)) + + for row in representation.rows { + let y = Int(row.frames.first?.minY ?? 0) + context.move(to: CGPoint(x: 0, y: y)) + context.addLine(to: CGPoint(x: width, y: y)) + } + context.move(to: CGPoint(x: 0, y: height)) + context.addLine(to: CGPoint(x: width, y: height)) + + context.strokePath() + + // Draw columns + for column in representation.columns { + drawText( + context: context, text: column.name, frame: column.frame, style: column.style, + fontSize: representation.fontSize) + } + + // Draw rows + for row in representation.rows { + for (index, (value, frame)) in zip(row.values, row.frames).enumerated() { + let column = representation.columns[index] + drawText( + context: context, text: value, frame: frame, style: column.style, + fontSize: representation.fontSize) + } + } + + return context.makeImage() + } + + private func drawText( + context: CGContext, text: String, frame: CGRect, style: Csv.Column.Style, fontSize: CGFloat + ) { + let attributes: [NSAttributedString.Key: Any] = [ + .font: Font.systemFont(ofSize: fontSize), + .foregroundColor: style.displayableColor(), + ] + + let attributedString = NSAttributedString(string: text, attributes: attributes) + let textSize = (text as NSString).size(withAttributes: attributes) + + let rect = CGRect( + x: frame.origin.x + (frame.width - textSize.width) / 2, + y: frame.origin.y + (frame.height - textSize.height) / 2, + width: textSize.width, + height: textSize.height + ) + + context.saveGState() + context.translateBy(x: 0, y: CGFloat(context.height)) + context.scaleBy(x: 1.0, y: -1.0) + attributedString.draw(in: rect) + context.restoreGState() + } +} From f0137deba2ebcfa6350af5c88d5a2f6d38b22316 Mon Sep 17 00:00:00 2001 From: fummicc1 Date: Thu, 17 Oct 2024 01:25:01 +0900 Subject: [PATCH 3/7] chore: delete unnecessary option --- scripts/actions-local.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/actions-local.sh b/scripts/actions-local.sh index 54b181b..0500a0d 100755 --- a/scripts/actions-local.sh +++ b/scripts/actions-local.sh @@ -5,11 +5,11 @@ set -e current_dir=`realpath $0` cd `dirname $current_dir`/../ -act -P macos-14=-self-hosted -l --container-architecture linux/amd64 +act -P macos-14=-self-hosted # Because xcode-setup does not work on local machine, make local flag true to skip xcode-setup export LOCAL=true -act -P macos-14=-self-hosted -W ./.github/workflows/core.yml --container-architecture linux/amd64 -act -P macos-14=-self-hosted -W ./.github/workflows/command.yml --container-architecture linux/amd64 -act -P macos-14=-self-hosted -W ./.github/workflows/builder.yml --container-architecture linux/amd64 \ No newline at end of file +act -P macos-14=-self-hosted -W ./.github/workflows/core.yml +act -P macos-14=-self-hosted -W ./.github/workflows/command.yml +act -P macos-14=-self-hosted -W ./.github/workflows/builder.yml From cd76c02e874096fc5d092dab1384ef3562dea4e3 Mon Sep 17 00:00:00 2001 From: fummicc1 Date: Sat, 19 Oct 2024 04:08:55 +0900 Subject: [PATCH 4/7] fix: Coordinate gap between iOS and macOS --- .swiftpm/xcode/Csv2ImgCore.xctestplan | 8 +---- Fixtures/outputs/category.png | Bin 63159 -> 1456 bytes Sources/Csv2ImgCore/ImageRenderer.swift | 8 +++-- Tests/Csv2ImgCoreTests/ImageMakerTests.swift | 29 ++++++++++--------- 4 files changed, 22 insertions(+), 23 deletions(-) diff --git a/.swiftpm/xcode/Csv2ImgCore.xctestplan b/.swiftpm/xcode/Csv2ImgCore.xctestplan index b163d3b..18c9d09 100644 --- a/.swiftpm/xcode/Csv2ImgCore.xctestplan +++ b/.swiftpm/xcode/Csv2ImgCore.xctestplan @@ -12,13 +12,7 @@ }, "testTargets" : [ - { - "target" : { - "containerPath" : "container:", - "identifier" : "Csv2ImgCoreTests", - "name" : "Csv2ImgCoreTests" - } - } + ], "version" : 1 } diff --git a/Fixtures/outputs/category.png b/Fixtures/outputs/category.png index 462ea781816596178de6adb7c2441fd69471736f..42b3501c203806f5dd6aa094324c8a571fa959c9 100644 GIT binary patch literal 1456 zcmYjR3s6#N6uy92nr>=t;Vavq2hlc)EnDvTDpD^gmX;5SBvDL7w*f61H6_P%l`=86 z@Rc)ZZ5!&|Od7Rx%{N22YgssC+TO6%$P)Ia1w#-<2JBs{Ou;^3>a-pxj3C%=FI4x$Q4L;FW5Qu>U?8*|*sGuw7#j$O zLcjxI?4cD#8-nNsMT2xtvssBVBeYxqlywoNs)qOZObv>Q&hD=3!-V+e}zn zpe%NJ*z6cbT8Jzz>02KjuV3ivj}?@Ey4dzH@vcYOG-K4BlOd{AVTSDL3{zb;iotvrGIT`{GCr%7?J7#ap>K30P4%@ z^yT4y=WZ-|T4MM0#+&y`OTDlyiO`V8){gixR)25mLwzLS|(kd_bBBGr?Rz+ zy*M~HoPMi5S$u5kW45%=HHy&4yj?pR0wTD<%swW7;t^{H)X`!j?08J;mo#8Pwgf&F?1POE==2z^>HrDkl zzD6bw0ui1N<2EO>8~Ir#!)6al@*OqGp~)v}XeF0PyX*0z>WXk!06NZ#(XE6agF$+h z+yI8@7&=Va3fD`Iysb?BHQ<&oHhS;Tr;eL8CPe#IGQ-#`3RcBZHL|N)Jg)a=jK7&l z)uc$%FNQs&Hn7sPj8SHHs^|#!zS;Za%53)RUjb)bR4IU_x0S`N8#wuiGeLKT3-p>7 z_mfj=1XQ4QpzNi!sB7nLtuwFQtQRh%B? zg_t%^MvHpFVT|#_;3X zmVriin-rss;I^Qo4+|*W94TeauIwjWk%PGU&mB(3)x;)7X%U)p;O!GNq2sY2M6CFp zSg`CvNK`v-l%`%$R0xl-J`b(6pqKXouwIqMFgC%HBk1wu?-SephE|47I0zGfkbaOp z`{NTD0!%o6=dzF5wFP(5)Mk&9&Ai`tG!9A48{osIDwg?!8bBdVNQc-aTC&y-eQlO@qc_nS{hh)48ML~+?DPKt2;+G# literal 63159 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%0D5cYXs8Kgcz6U^1pi(k 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�aYuD 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 RME3zNT`fb+qKkIH{{fKsJWT)q diff --git a/Sources/Csv2ImgCore/ImageRenderer.swift b/Sources/Csv2ImgCore/ImageRenderer.swift index 7283ea2..7465018 100644 --- a/Sources/Csv2ImgCore/ImageRenderer.swift +++ b/Sources/Csv2ImgCore/ImageRenderer.swift @@ -70,8 +70,12 @@ public class ImageRenderer { ) context.saveGState() - context.translateBy(x: 0, y: CGFloat(context.height)) - context.scaleBy(x: 1.0, y: -1.0) + + #if os(macOS) + context.translateBy(x: 0, y: CGFloat(context.height)) + context.scaleBy(x: 1.0, y: -1.0) + #endif + attributedString.draw(in: rect) context.restoreGState() } diff --git a/Tests/Csv2ImgCoreTests/ImageMakerTests.swift b/Tests/Csv2ImgCoreTests/ImageMakerTests.swift index b7980c8..71e9fae 100644 --- a/Tests/Csv2ImgCoreTests/ImageMakerTests.swift +++ b/Tests/Csv2ImgCoreTests/ImageMakerTests.swift @@ -3,37 +3,38 @@ import XCTest @testable import Csv2ImgCore class ImageMakerTests: XCTestCase { - func testMakeImage() async throws { + func testBuildImage() async throws { // Given let fileURL = getRelativeFilePathFromPackageSource( path: "/Fixtures/outputs/category.png" ) - let expected = try Data(contentsOf: fileURL) 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 + name,beginnerValue,middleValue + Requirements Analysis,1.00,1 """, styles: [ Csv.Column.Style(color: Color.blue.cgColor), Csv.Column.Style(color: Color.blue.cgColor), Csv.Column.Style(color: Color.blue.cgColor), - Csv.Column.Style(color: Color.blue.cgColor), - Csv.Column.Style(color: Color.blue.cgColor), ] ) let imageMaker = ImageMaker(maximumRowCount: nil, fontSize: 12) + let columns = await csv.columns + let rows = await csv.rows // When - let image = try imageMaker.make( - columns: await csv.columns, - rows: await csv.rows + let imageRepresentation = try imageMaker.build( + columns: columns, + rows: rows ) { double in } // Then - // TODO: Remove XCTSkip - try XCTSkipIf(image.convertToData() != expected) - XCTAssertEqual(image.convertToData(), expected) + print(imageRepresentation) + let cgImage = try imageMaker.make( + columns: columns, + rows: rows + ) { _ in + } + try cgImage.convertToData()?.write(to: fileURL) } } From f6e327e7650ad9954b1828794126e60250b0957d Mon Sep 17 00:00:00 2001 From: fummicc1 Date: Sat, 19 Oct 2024 05:05:59 +0900 Subject: [PATCH 5/7] fix: coordinate gap / text rendering --- Fixtures/outputs/category.png | Bin 1456 -> 64360 bytes Sources/Csv2ImgCore/ImageMaker.swift | 177 +++++++++++-------- Sources/Csv2ImgCore/ImageRenderer.swift | 46 ++++- Tests/Csv2ImgCoreTests/ImageMakerTests.swift | 109 ++++++++++-- 4 files changed, 234 insertions(+), 98 deletions(-) diff --git a/Fixtures/outputs/category.png b/Fixtures/outputs/category.png index 42b3501c203806f5dd6aa094324c8a571fa959c9..ec0c22177f4e85c64ff19d59c4164b270f14cdc2 100644 GIT binary patch literal 64360 zcmeFYbx>Px+b#;U6pB-v?Xu?(4o*xT>-&KF&)VG&D4PxsNjHXlRdR z(9qB&h@Lzg*=%teLqo$;wvv`sm6MjHQ+0MQx3c|;hW0T$K^sfwQ$Km8zB>J5Y#9mp zEhVD3XA<(*oTt%rZ1hiwVPZ^J_(Hd z-vQjQ3W8%}t7wU;|`lU<~csg4|`%{Pux{yTe33;*~BunwpA|itW&*X=O)Pop{ zcGV~Y(s5m$BonFpMD!emT8zkjhtmybV0t49w-bW4|FIYoV> zc@8jhk>`Kq?zx=y;w_g&*a3X-iJvOcUu%QWQR6DvJuwWB7b8e+-pwMZ7%Y$_k^cN? z<&&e-qyl|ADzfA}8>)Q;6Ym<8W0cDCe7m=B|J)qg>dhqlV0PFmWwD^7?rA z2g14ayPU<(Ob$<+T3YDrJ#8h$4AR;BT69ursUgQCkRf>JhmxC)^FYVnnCRayNh=Bh zU(iv8E%;FStY&~&unz<9%rJ-@pPPipGUA_oT;U@i{SKplhJM*6aNl7>{QBEXp<3xr zk{CyD$)mpK$WP#nZ-qpNfH$$Y2V{ZrKZyySb&&Lh-LDeUYN7w2r_lO(-;M~Kqo{^$QafPx&o65r#!N*Jt~R z6cqg*yk4LSWdlc5f#dB^LVHX;Lnr@5O0e|T^l(ZvtVK*{XNTYFP$U@w#J7c)jyNGD3F3BHqpzBV;#iu0FOkz7owvAb<&e^tPQJ^i5zU zp%o{yR=W(--}x}e-JjX~nXg!v7pYpy#4B%Doio9@?GF&jof%4EDH+OJEQS{MZs&rz zjo%3yH@;}(&2uqZ8!GiB#{%-maAeA?2t;r0ZtP-wJHF2KZf%WtaZ^q=RL8ye(-{3w zOz_Pc$6Z_s?`Pj0?H?vMp5j_`hJeWV(733`UYlXE5ojA>9}Y`~HmlG+f8_G{(Yn(U z``@@10TM(wIT9itpG;((>pEr({^oc?$nm5*i?sB~jwI78PF>*33JR*nQCXPjPsG0~ ztl&IM>z}C!%*;Ts!)5YsXeJ(V?yGh@W>mthRUND1YT zl#i?Z$W(=2{GNbLHg2Ntecq$SKoJ@5Sn;^?*CF6sp(0}I;Aq*o*I4+{>tn^1%t9ob zGD$h?V>mT0mjd~-3da<-@M}o?qR&jxK6NH1v%WC zC&Cwhr^~z2Lx9*~g<}!De1%8^onnRe2=fA`m`=P-v`3_sffvcMDhzR_ za%YSV>ZIW+11x0m{6EiPm4BB1Z2IWXZ*4|W#VZ(=E|nM?*|)i|v_Y~_vSG17NU9XU z)E)oqJ+V4mRZGoXHI+4q)$kXg1}B(rD($7pZ~<3=mg-J1qUgK`GC4UpG$}G^GTCJv zImtG8R${2?Q*@?msK2C~QIZKRS2ZqfQ@H(gMUB#a_i{J_E~}8eIiWRfZDnCeXz9TB z{AKh@5&Y~PsVKInCs8FYxwlB0m@=e6AGq_9CJ4v4Cw%x=Q?*hJl-l4J!)(L3srB!! zYoF_p)a2A0*JxSpO*a)yl_`zajT20gTXRn>m-~IV=6PhA%-ev6Zu-;|Yn>`rA+*S} ztaGA&nssWfWTJecu%v7!C#^_Wzh3^l!JdW0RFB7N$NcP3#k=U?=^gz_!g&zjFVnAwurGV;w^y7m;!BwOuTq}v&o`~GR@4f?WX%D~Uc zD`<60sgTtDWwVM+$3oYyAf$l40B6FkV6T97sC4+*P{hz#$`YV3wR)I$XmCh>_?knJ zgMkCCJE?nPB3EgqZ?0=!A>we^GceEAZ=Ir{p3eADDC3!E9kX(Qlxp>1GC~27Lk~0aYkQs8DEVv|_Jg zFGKH#UW#?jp28o-ymvPjBg*B?|CnGJ zPMQOeC6N-`@rz zzh8Yf3`9Hu;m`*K1(!Z;?B-p2>RH>;rg}blnQhTI*}3+It&=8rA$agl+N;s9(J(jS za|X^=OmR_abP*J_Tu5Mz+v(7jDNk4ORx&ubu#&_C(VZD%+NBh;Kz%N>EDqGXS$drI z_`Q@3gD4MQCI69>XjCHqF&uU8wdrd=rL8?L4l93>= zGiqBl_jAt9Wf#r?Iw^fqbQs!rVbHNS?Nx9>KH?();`Lv^Fq6FcJ{=6lP2$?sBW)=% z=W%m_u7M)cBc{o3YZ~buo<)SMgcM?EOMO%_9I|2(_(fmzakC?D1j2 zs~@kJ@IQ8@hqU#S_CO0Z3ZiqfW%biqQ)8%HMCwYqYx0o|`$w8AMJ$P#&joZntL}fD zY8-42O~mLI)-Q|lUJjwEc`O!2f-{;AO-Exape|5Q%Zgw2W)7k|SG>~Sx@E(?ID5Eu zuWzJWoYu<2#-U*s*ti|hn*fiNqh=|;G7|OUT$zuV@tWaY3Tqj2;$4OB=@-`vIp8{Y z!1`NHj+4F{i!Bzff=^aIOKMomOFq6M(aNC5iljtC9fHIPDDIXP zF+SfDpp|BciIRP@e2I2MgO(xSlt%#Cd@_{?&c zO1AVR4>8_X&00@g;aJw{5%QmLYuW_s)LQH7*09k)uxZ|xRb|y=23bbF#-@}Z5XA8O z)|h!e#MpVlxFMH`&lf9^gipyPz) zZJNIt|DQY{-8YG23{oPw

_)|G~v2&;n{mv%Y=Qv*%}s`kzhVfByb|w+{cA{r}kh z|MBVnxbA-!;QkYN{*R&jzeVc*Ul`AP%5Uvy?Zm^Ni=L~VXFy?nK`pF*GUpWLM+-ea z5~BZ--YiW5rl8ic0!kvE%x6p<(v%gCHF?m#(~blZ!)BMSu4x5%DL3LVP^RNk**qKd zq*i}DW-}J3W5SDi4ZsQYAN);7RWR#Zzv2v&a%>5~&OoJcTv+obL z7jU3IJffvhK=enz2XkJVi zp|dlKy?_;!`+_=Jo^7d1cT7__-=%D`e?x z>FwPdT3Jkzjtl>h;wR%Q}w z1`s8@*UXr@BLRjLfLhh~iM5qM-1i!3v050bH4&U~@6iGXIO$4yrZlfp zz&2?wJ2m9m=5_aq0Nz9R83jhlOP47Qf=C3RZHJlgW@TT*?z%*Cy@eLH5RXN1~KX+~3S^a}b&|NP`@v!$t}x9xp*2U)vk zV|zresM%LZ-+${}brO%IaaHMrb>An(wENVl!oyLX@JV}B+xQXx0uz64G^(WbEG;^J zXr7<>^LV!gByH%j$AGrLyLDQpMV;D+Yr|(afT$#0v+4KuZDlvH;%JA&iSa=tzD#CN zMakvQv5qY|Tim!Kw+)+wHknsbn|PpSDpPDL^gr<+SP(4mhZ1}ihYC&f480toLrRm zUUURNlJt+G(mlM}jqH1IL=41tuC^1(iDboG&Av2JLA2E%USFMC_Vbq%1~7Dkr%I)1 zxIKbAyMSHl4rh5UGs&hLj`3PdRs_6Clw4usw=R6J^c2B~L0kH&fhzu@eOi^9BeKn^ zTPy@&G%#4>9o4h4B(E$~$(r$SNzJCS(MU@EbiIli$jjSnp=vszU)PxGWpzG7tizva z(lDNRwYa*REjsilRwJqR;vY<}^eT(i;6jQ@ z({nO|t#xR5)UQ##UGZvsuf*QCXn#m^@gJKTHdL) z$3sW1{fP>$cl}gYqVhglzN!7~slKqjwpZ2c8#hUfgQv$P3f8H{BasNyo&6c&Kpb@& zs&V&b?z4S*nr~yuh|jW*5NvtYH`S-z%JvfPKnEin`s%o&g|;@hLUzGIL+4oJ+3xk1 zlsujpCAc?I@W`MH>z+L$p=l*J#bH`oSLpWLOz3qf48h9>ng~fRfP^A5V>Yt%=%-u@ zrn{@us#v&nO$#C1FaPX3S}W2%E$0^)=5`LT@yB5swZYiMFM?)=SxN z0;WC!+}iRAVH4Why;iaypvG)WH@yE*=8)F*C$OZS9y72hUDmlJHhm=gEZn_MNu(a$ zq!Q;Dj!*dFo&6}b8&%5b%9rae%>!1RsTbMtI4s+zON!!bKEIUj*L$tDJU%%fLK3^* zJpLi^>A-_YIb7NJYG^0-;8E)O>iACug-MjIX~!aMsZWOKKKFFSa-ONVAT#JT9YqdsyH z2niKQC?G)3GR|RV%hNMQ7I=cv#wxqjP9QR*caH%q86gfA3uaZFnKi%m>K{RQO{Y^p zGTin`Wr8)LT~A4?4U{xA*bG=fGxr1HY{=& z>Z&{mT;=`&a2fK`0E)mWeF>(a!*dH2LOvPi%&-4dv>7>QcFUZ2r6$bL>^&D$ly80F z9Na{#Ic5m%+m~BsQHq#l`0@r*1lqDT4tR4Q8 ziN76oW8k)~E;dU1qRw|+o*&h%LiA60ld7?zB7OHxCf_2)T=XUQc+H%e7|`VwzK3Ne z{xP3>!tB#F&e3)Xh(L3D-=?bHG3X5+PuSxxseHrWpX z1+aYLYb%w0SZ|$3-TS3O-#P!e5!aySCWMvJnU?Pi41L`y+s!6S{W{_95oX9 zE9UhGB;!?4CWG45vcccLlIdhs?Ay_^h)iAmaeu>$Ak-(#VY23si1Z;=BwsB61WrGRzSSCJX1l((>1yZV zOxjCoNov6}#;&HRnz6_Hw7zgPj$*QIzw_Rl@fQ7=VU^DmGcOUwt#W;=L1s)+H!?4# zjZz`ivu>BG@xAg;3}`~cd0@4qm6V(Ai(lW#4*Jp8wY9iKi-9b{OD}E#4IGY>N8TM@ zDFn!zTV$(ghx=of+FS4IJqBJ$l%_UXHvtb_Vg+6Un;hEChtDUytjcXCQKQ8GkdS1) zFm5`gaskmA-9eTfAAWu+v`=^IGY&YN=jew5JI3YO?~AC&$s>-D(5ne;Z^laqLx~h5 ziThRl8t=ts2k)dC{LrbhH&|3q3UEo$*Ul*Y5S#k9_MVqDo-mn4^lW_(;I?R`0v`wK zoc_)!R-3ysi&3eX^g4QT{svI{Hn73WA7 zG;(^|RQg^wa`N)F;Cotu3{|%IJDociF|r`$e(wmj&t@pRJr|#;c{zgOol()gRI3Ep zn)#C`4$D>ju2J3Iu4oQfGTa}y1}^(@Pf#$7^iN#c^8%OL6*jR*3|VelU?VP?O?TEH z?J_n9v%9iVbLMmtsBGfW(C~Ll=IX+g?N09atzFgFw&SqC*Wj-c?hU$?PvykHoDDSL zdn7l=1`N&&f3VLoVCFsHKo&GIe_f#j!g3W3M7EfJ7aVD&Ga4PqU2Z)!yv>33PWNgR zu*l40+0ao{ev0Lm-yEosErrzptA)hv?;KsSjw9WqKY=WEprHLFlB_3jODCq*4~4{& zfWl_cGT6q|)UL58?NRWB<63C^TWb2Y{yXNvc+M{NYNM1AE=2<1+Ddz<*+S5QzyEa< z^3QqB-SIM5f3wipj6FS@v?VKZ(NgmDu3H##5)Ufyh(* zSG>)b+}z2ZHV3}bf3i<8VhyGB8y+K(N+fb1ZxiJF)JK^)r|%|$7)cf9-%iPt$HH1<~ehfel-z2}-q zD>btrZ+}$ZDsxNSP3?PR&& z-rliLLac(#AZsGhc<8=6CyZUT=qa;b9Kz0!sPh!Ez|Z&1;Dy2Emtbm2Z}0XAPB+sN zlrCiF)YEVIsv~1#g(A|}Aa48V*nR39AgFXUu;j!UI>?oDEAA#fwO#R%=x*btUu(PH z_{l93Kuq+-yhD+4p;A)|tIwxsz2%Z>qp3mKWzz=bLJ;!I^_;D};B%O5y@qAEuR_iR zVCGm)*!c6=peX5Fs69tnHk>?7`Y|I|!TLvhRU zw2@}+1F=>yAMOR8lvG%cB&CW5Kz%>c^IRaoUukA^{#vQ2iTD6c?CH09SaE%Q1Q6;?jOHwkUH5b90H5U4m8MvCZQO*t!revq zl|yC}ujhRrC@glceXM;-~%<85|rVw&ROTJJ-`=zn9A4E5N;s!-;5 z;x-XJ8#~`_glB{Y=I}CJJA@Ew1E5N(+ZtUwhL!F%u)?tJJi8m~;=M)w=|r6xvVg?- z1N)c$6M11wUEdU*7|>Li+Hl)o=&I5;x7W7S20b9)HPpG7e+-#tY~TUqaiQtk4Noj@ zEbk*k%IvRN|Ka6#KGpJt{Fx13Vh8+}`H%ShjE{4}X}7O^nO?~s3tvi!B%iOW{E$fG zzNuIUWy^TS{qo16gPDaP-MoI={oQx?(NJPB?^;2YV`>{tdwd@Y z8CM{YS7sF~jOR8MC~a(8w7E1I47LmDNgr~Ypjp8ys?WmPmK`c*@~=&}g)q&ee5D^v z{?^EaYyqF>xlw(7`LYnxWlziieo7-n;QclFdwa@xv;MYJ8JcscxTYH4n}w8Zxpg=BQ> zD(PGiWn?J6n5}0BC+yG{+1>t2P)frs0*p{MX%mOV4D7!$%Uzq$X|O(fC|w5~us+kvWXtT>bk@; z9RWgww(9t!6ug!>C^t2iTU(k_4>t5!R8$E+-W|t>s(@XC8eCw)WnnBbNm&Z2oUGXY ziZFDeU*(dRkRsQM(j%h9(1pAVjEr*YhR8Jmevk(rK#V(z| zk`DkH66(tHdD)G}oZ$>}27@+xzLM~QAtg3ro&%2)9NtHl;ga_s#W$E#W7ntfDZ(RV zy5cT>RizC~0vTaJ+j(b0b92=$U=I2ZgUlQcg`_tv5~HdL9{1gHaV1iLn=3+~N;a{g z5+cCeL5?Y z6nT+utK$B4xis} z%%e*yunL7!*zJ!1~24e831)NvrzGwp(Jm%?*+z6QY6>qKgu1RZ6C$0=RYcurymBJeab3`JvOeE3PIZEK;QDeo)ELkNXd*6wZe$XPCq>Dtcs~&h#G4Z+0^EjvCDvzZo2+9EN0tnru-zf>Db{ki*8o7-e=jAn+h7inqFVY8fxSal@eG8bLD6~IMq!*z|L1&qvn?dF!dM<)?;hCiOfGZCp;iTy+P ze!`&mWu!Vkicdi@7he{?S7Fg)vPTBRku_|X#DBCGpxl=LczjX-?X+xp=^~}L)J7?|oL4HLmC85H(X{S2$rZV{ zAzN6$@B(d3(U852&~kSzVKAM-5?#C6UJtB6=(JoK6-c1@J1^Ta_3{Tu5NO^7FqD#c z#gNl<3MdKG@&8wE|6R=QO^DH*dzVcM*robZ9PhsK5O2n{dp>gUz5Qg2TN=QTe5rZM z9S5`8;ud{JqR=53r)_Wu`_aJ*^kH7+_9mTi)4qF2bH8lwEgLhC=^ z^hKQiGJZ~F8vKHhKksTLKAYvb2N6o(yZ;*@oyif)agsvczCT;JpT@FO3Pa<&9FWoc z-dj*~$0s5r!cH|a;XA;jhVS`6W%q;1T46PEqzqHm7>`D%1=K|=-fpYrgx&OAs+H|< z@-FM@T5NXFf(rbX-1mbP^&Ef@L7(BdKgGgY$fZae3bLNUc)^$rPozj5Zb+ZI>FS@A zKXkUeIIjHsZ7-Jf2KfdZN|(kjpOMh&Rx8HICn>%Gx%$C;V3FLvO+y?i>t~PY^DcT> z?sdR8%&BkOyJyEQE|c#Hmgdh{6-D%#m-H4IYiH6n>&qo<_B=wHL!0Rvk?rkk=M-iF zJb@38)5AQUvnx0ow_f9MRnKaPcv@C@%$dK}y&#*v_dU-P-)#hGXPd+BPRVsPiX5-l z!pK6`LYGaH%5{9@)7nAvz-f+zs6;8{-(>zXM2fV{n~i2 zoKHbI>q~$sGYzkpS^sx>zHOyWQ`|4K4l~|RW)NhmNqlDZ6i-DZ;K%6?{>l$%0cRYs zJMboY{qpQWdk7;zK}dvX`}_$maTi#uw8HGtdyez|^iiⅈfMXb}FjHw^oeN(fCF6G4@E{O}*}3mR;v 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 literal 1456 zcmYjR3s6#N6uy92nr>=t;Vavq2hlc)EnDvTDpD^gmX;5SBvDL7w*f61H6_P%l`=86 z@Rc)ZZ5!&|Od7Rx%{N22YgssC+TO6%$P)Ia1w#-<2JBs{Ou;^3>a-pxj3C%=FI4x$Q4L;FW5Qu>U?8*|*sGuw7#j$O zLcjxI?4cD#8-nNsMT2xtvssBVBeYxqlywoNs)qOZObv>Q&hD=3!-V+e}zn zpe%NJ*z6cbT8Jzz>02KjuV3ivj}?@Ey4dzH@vcYOG-K4BlOd{AVTSDL3{zb;iotvrGIT`{GCr%7?J7#ap>K30P4%@ z^yT4y=WZ-|T4MM0#+&y`OTDlyiO`V8){gixR)25mLwzLS|(kd_bBBGr?Rz+ zy*M~HoPMi5S$u5kW45%=HHy&4yj?pR0wTD<%swW7;t^{H)X`!j?08J;mo#8Pwgf&F?1POE==2z^>HrDkl zzD6bw0ui1N<2EO>8~Ir#!)6al@*OqGp~)v}XeF0PyX*0z>WXk!06NZ#(XE6agF$+h z+yI8@7&=Va3fD`Iysb?BHQ<&oHhS;Tr;eL8CPe#IGQ-#`3RcBZHL|N)Jg)a=jK7&l z)uc$%FNQs&Hn7sPj8SHHs^|#!zS;Za%53)RUjb)bR4IU_x0S`N8#wuiGeLKT3-p>7 z_mfj=1XQ4QpzNi!sB7nLtuwFQtQRh%B? zg_t%^MvHpFVT|#_;3X zmVriin-rss;I^Qo4+|*W94TeauIwjWk%PGU&mB(3)x;)7X%U)p;O!GNq2sY2M6CFp zSg`CvNK`v-l%`%$R0xl-J`b(6pqKXouwIqMFgC%HBk1wu?-SephE|47I0zGfkbaOp z`{NTD0!%o6=dzF5wFP(5)Mk&9&Ai`tG!9A48{osIDwg?!8bBdVNQc-aTC&y-eQlO@qc_nS{hh)48ML~+?DPKt2;+G# diff --git a/Sources/Csv2ImgCore/ImageMaker.swift b/Sources/Csv2ImgCore/ImageMaker.swift index 618c4dc..7a56799 100644 --- a/Sources/Csv2ImgCore/ImageMaker.swift +++ b/Sources/Csv2ImgCore/ImageMaker.swift @@ -57,6 +57,45 @@ final class ImageMaker: ImageMakerType { self.fontSize = size } + private func createContext( + width: Int, + height: Int + ) throws -> CGContext { + + #if os(macOS) + let canvas = NSImage( + size: NSSize( + width: width, + height: height + ) + ) + canvas.lockFocus() + guard let context = NSGraphicsContext.current?.cgContext else { + throw ImageMakingError.noContextAvailable + } + #elseif os(iOS) + UIGraphicsBeginImageContext( + CGSize( + width: width, + height: height + ) + ) + guard let context = UIGraphicsGetCurrentContext() else { + throw ImageMakingError.noContextAvailable + } + #endif + + defer { + #if os(macOS) + canvas.unlockFocus() + #elseif os(iOS) + UIGraphicsEndImageContext() + #endif + } + + return context + } + /// generate png-image data from ``Csv``. internal func make( columns: [Csv.Column], @@ -66,22 +105,15 @@ final class ImageMaker: ImageMakerType { ) -> Void ) throws -> CGImage { let representation = try build(columns: columns, rows: rows, progress: progress) - guard - let context = CGContext( - data: nil, - width: representation.width, - height: representation.height, - bitsPerComponent: 8, - bytesPerRow: 0, - space: CGColorSpaceCreateDeviceRGB(), - bitmapInfo: CGImageAlphaInfo.premultipliedLast.rawValue - ) - else { - throw ImageMakingError.noContextAvailable - } - guard let image = ImageRenderer().render(context: context, representation) else { + let context = try createContext(width: representation.width, height: representation.height) + + let renderer = ImageRenderer() + let image = renderer.render(context: context, representation) + guard let image = image else { throw ImageMakingError.failedCreateImage(context) } + + self.latestOutput = image return image } @@ -103,46 +135,15 @@ final class ImageMaker: ImageMakerType { let horizontalSpace = 8 let verticalSpace = 12 - let textSizeList = - rows - .flatMap({ - $0.values - }) - .map({ - $0.getSize( - fontSize: fontSize - ) - }) - + columns - .map({ - $0.name - }) - .map({ - $0.getSize( - fontSize: fontSize - ) - }) - - let longestHeight = textSizeList.map({ - $0.height - }).sorted().reversed()[0] - let longestWidth = textSizeList.map({ - $0.width - }).sorted().reversed()[0] - let width = - (Int( - longestWidth - ) + horizontalSpace) * columns.count - let height = - (rows.count + 1) - * (Int( - longestHeight - ) + verticalSpace) let backgroundColor = CGColor(red: 250 / 255, green: 250 / 255, blue: 250 / 255, alpha: 1) - let columnWidth = width / columns.count - let rowHeight = height / (rows.count + 1) + let columnWidths = calculateColumnWidths(columns: columns, rows: rows) + let width = columnWidths.reduce(0, +) + (columns.count + 1) * horizontalSpace + + let rowHeights = calculateRowHeights( + columns: columns, rows: rows, columnWidths: columnWidths) + let height = rowHeights.reduce(0, +) + (rows.count + 2) * verticalSpace var columnRepresentations: [CsvImageRepresentation.ColumnRepresentation] = [] var rowRepresentations: [CsvImageRepresentation.RowRepresentation] = [] @@ -150,53 +151,39 @@ final class ImageMaker: ImageMakerType { let completeCount: Double = Double(rows.count + columns.count) var completeFraction: Double = 0 + var yOffset = verticalSpace + // ヘッダー行の描画 for (i, column) in columns.enumerated() { - let size = column.name.getSize(fontSize: fontSize) - let originX = i * columnWidth + columnWidth / 2 - Int(size.width) / 2 - let originY = height - Int(size.height) / 2 - rowHeight / 2 - + let xOffset = columnWidths[0.. [Int] { + return columns.enumerated().map { (index, column) in + let headerWidth = column.name.getSize(fontSize: fontSize).width + let maxContentWidth = + rows.map { row in + row.values.count > index + ? row.values[index].getSize(fontSize: fontSize).width : 0 + }.max() ?? 0 + return Int(max(headerWidth, maxContentWidth)) + 20 // 20はパディング + } + } + + private func calculateRowHeights(columns: [Csv.Column], rows: [Csv.Row], columnWidths: [Int]) + -> [Int] + { + let headerHeight = + Int(columns.map { $0.name.getSize(fontSize: fontSize).height }.max() ?? 0) + 10 + + let contentHeights = rows.map { row in + let maxHeight = + row.values.enumerated().map { (index, value) in + if index < columnWidths.count { + let size = value.getSize(fontSize: fontSize) + let lines = ceil(size.width / CGFloat(columnWidths[index])) + return size.height * lines + } + return 0 + }.max() ?? 0 + return Int(maxHeight) + 10 // 10はパディング + } + + return [headerHeight] + contentHeights + } } diff --git a/Sources/Csv2ImgCore/ImageRenderer.swift b/Sources/Csv2ImgCore/ImageRenderer.swift index 7465018..b5638ed 100644 --- a/Sources/Csv2ImgCore/ImageRenderer.swift +++ b/Sources/Csv2ImgCore/ImageRenderer.swift @@ -2,6 +2,12 @@ import CoreGraphics import CoreText import Foundation +#if canImport(UIKit) + import UIKit +#elseif canImport(AppKit) + import AppKit +#endif + public class ImageRenderer { public func render(context: CGContext, _ representation: CsvImageRepresentation) -> CGImage? { let width = representation.width @@ -10,9 +16,16 @@ public class ImageRenderer { context.setFillColor(representation.backgroundColor) context.fill(CGRect(x: 0, y: 0, width: width, height: height)) - // Draw grid lines context.setLineWidth(1) - context.setStrokeColor(CGColor(gray: 0.8, alpha: 1)) + #if os(macOS) + context.setStrokeColor( + Color.separatorColor.cgColor + ) + #elseif os(iOS) + context.setStrokeColor( + Color.separator.cgColor + ) + #endif for column in representation.columns { context.move(to: CGPoint(x: column.frame.minX, y: 0)) @@ -31,14 +44,17 @@ public class ImageRenderer { context.strokePath() - // Draw columns + #if os(macOS) + context.translateBy(x: 0, y: CGFloat(height)) + context.scaleBy(x: 1.0, y: -1.0) + #endif + for column in representation.columns { drawText( context: context, text: column.name, frame: column.frame, style: column.style, fontSize: representation.fontSize) } - // Draw rows for row in representation.rows { for (index, (value, frame)) in zip(row.values, row.frames).enumerated() { let column = representation.columns[index] @@ -60,9 +76,10 @@ public class ImageRenderer { ] let attributedString = NSAttributedString(string: text, attributes: attributes) - let textSize = (text as NSString).size(withAttributes: attributes) - let rect = CGRect( + let textSize = attributedString.size() + + let textRect = CGRect( x: frame.origin.x + (frame.width - textSize.width) / 2, y: frame.origin.y + (frame.height - textSize.height) / 2, width: textSize.width, @@ -71,12 +88,23 @@ public class ImageRenderer { context.saveGState() + // テキストの描画位置を設定 + let textPath = CGPath(rect: textRect, transform: nil) + context.addPath(textPath) + context.clip() + + // テキストを描画 #if os(macOS) - context.translateBy(x: 0, y: CGFloat(context.height)) - context.scaleBy(x: 1.0, y: -1.0) + NSGraphicsContext.saveGraphicsState() + NSGraphicsContext.current = NSGraphicsContext(cgContext: context, flipped: true) + attributedString.draw(in: textRect) + NSGraphicsContext.restoreGraphicsState() + #else + UIGraphicsPushContext(context) + attributedString.draw(in: textRect) + UIGraphicsPopContext() #endif - attributedString.draw(in: rect) context.restoreGState() } } diff --git a/Tests/Csv2ImgCoreTests/ImageMakerTests.swift b/Tests/Csv2ImgCoreTests/ImageMakerTests.swift index 71e9fae..89438af 100644 --- a/Tests/Csv2ImgCoreTests/ImageMakerTests.swift +++ b/Tests/Csv2ImgCoreTests/ImageMakerTests.swift @@ -5,18 +5,76 @@ import XCTest class ImageMakerTests: XCTestCase { func testBuildImage() async throws { // Given - let fileURL = getRelativeFilePathFromPackageSource( - path: "/Fixtures/outputs/category.png" - ) let csv = Csv.loadFromString( """ - name,beginnerValue,middleValue - Requirements Analysis,1.00,1 + 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 """, styles: [ Csv.Column.Style(color: Color.blue.cgColor), Csv.Column.Style(color: Color.blue.cgColor), Csv.Column.Style(color: Color.blue.cgColor), + Csv.Column.Style(color: Color.blue.cgColor), + 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 imageMaker = ImageMaker(maximumRowCount: nil, fontSize: 12) @@ -28,13 +86,42 @@ class ImageMakerTests: XCTestCase { rows: rows ) { double in } + // Then - print(imageRepresentation) - let cgImage = try imageMaker.make( - columns: columns, - rows: rows - ) { _ in + XCTAssertEqual(imageRepresentation.width, expectedImageRepresentation.width) + XCTAssertEqual(imageRepresentation.height, expectedImageRepresentation.height) + XCTAssertEqual(imageRepresentation.fontSize, expectedImageRepresentation.fontSize) + + // background colors + XCTAssertEqual( + imageRepresentation.backgroundColor.components?.count, + expectedImageRepresentation.backgroundColor.components?.count + ) + + if let actualComponents = imageRepresentation.backgroundColor.components, + let expectedComponents = expectedImageRepresentation.backgroundColor.components + { + for (actual, expected) in zip(actualComponents, expectedComponents) { + // allow 0.0001 difference + XCTAssertEqual(actual, expected, accuracy: 0.0001) + } + } + + // columns + XCTAssertEqual(imageRepresentation.columns.count, expectedImageRepresentation.columns.count) + for (actual, expected) in zip( + imageRepresentation.columns, expectedImageRepresentation.columns) + { + XCTAssertEqual(actual.name, expected.name) + XCTAssertEqual(actual.frame, expected.frame) + XCTAssertEqual(actual.style.color.components, expected.style.color.components) + } + + // rows + XCTAssertEqual(imageRepresentation.rows.count, expectedImageRepresentation.rows.count) + for (actual, expected) in zip(imageRepresentation.rows, expectedImageRepresentation.rows) { + XCTAssertEqual(actual.values, expected.values) + XCTAssertEqual(actual.frames, expected.frames) } - try cgImage.convertToData()?.write(to: fileURL) } } From 11c1bea5c4fb0739bb4ab35f0f4f81481af95916 Mon Sep 17 00:00:00 2001 From: fummicc1 Date: Sat, 19 Oct 2024 05:13:03 +0900 Subject: [PATCH 6/7] chore: Add test target --- .swiftpm/xcode/Csv2ImgCore.xctestplan | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.swiftpm/xcode/Csv2ImgCore.xctestplan b/.swiftpm/xcode/Csv2ImgCore.xctestplan index 18c9d09..b163d3b 100644 --- a/.swiftpm/xcode/Csv2ImgCore.xctestplan +++ b/.swiftpm/xcode/Csv2ImgCore.xctestplan @@ -12,7 +12,13 @@ }, "testTargets" : [ - + { + "target" : { + "containerPath" : "container:", + "identifier" : "Csv2ImgCoreTests", + "name" : "Csv2ImgCoreTests" + } + } ], "version" : 1 } From 0909b1b88bc4ee0068af9ec6fe92be57cd2f83e2 Mon Sep 17 00:00:00 2001 From: fummicc1 Date: Sat, 19 Oct 2024 12:48:16 +0900 Subject: [PATCH 7/7] 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) + } +}