Skip to content

Commit 1aa1202

Browse files
committed
Support anything that can save as PNG
1 parent 31deee3 commit 1aa1202

File tree

6 files changed

+20
-2
lines changed

6 files changed

+20
-2
lines changed

Project.toml

+3-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ ImageCore = "0.8.1"
2323
ImageInTerminal = "0.3, 0.4"
2424
ImageMagick = "0.7, 1"
2525
ImageTransformations = "0.8"
26+
Plots = "1.4.3"
2627
TestImages = "0.6, 1"
2728
julia = "1"
2829

@@ -31,7 +32,8 @@ CSVFiles = "5d742f6a-9f54-50ce-8119-2520741973ca"
3132
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
3233
ImageMagick = "6218d12a-5da1-5696-b52f-db25d2ecc6d1"
3334
ImageTransformations = "02fcd773-0e25-5acc-982a-7f6622650795"
35+
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
3436
TestImages = "5e47fb64-e119-507b-a336-dd2b206d9990"
3537

3638
[targets]
37-
test = ["CSVFiles", "DataFrames", "ImageMagick", "ImageTransformations", "TestImages"]
39+
test = ["CSVFiles", "DataFrames", "ImageMagick", "ImageTransformations", "Plots", "TestImages"]

src/fileio.jl

+10
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,16 @@ function _convert(
6464
return join(strs,'\n')
6565
end
6666

67+
# PNG
68+
function _convert(::Type{<:DataFormat{:PNG}}, data)::AbstractArray{<:Colorant}
69+
mktempdir() do dir
70+
filename = File{DataFormat{:PNG}}(joinpath(dir, "inconversion.png"))
71+
savefile(filename, data)
72+
load(filename)
73+
end
74+
end
75+
_convert(::Type{<:DataFormat{:PNG}}, img::AbstractArray{<:Colorant}; kw...) = img
76+
6777
# SHA256
6878
_convert(::Type{DataFormat{:SHA256}}, x; kw...) = bytes2hex(sha256(string(x)))
6979
function _convert(::Type{DataFormat{:SHA256}}, img::AbstractArray{<:Colorant}; kw...)

src/test_reference.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ function test_reference(
122122
end
123123

124124
# file exists
125-
reference = loadfile(T, file)
125+
reference = loadfile(typeof(actual), file)
126126

127127
if equiv === nothing
128128
# generally, `reference` and `actual` are of the same type after preprocessing

test/references/heatmap.png

12.6 KB
Loading

test/references/scatter.png

10.8 KB
Loading

test/runtests.jl

+6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using Test
22
using ImageInTerminal, TestImages, ImageCore, ImageTransformations
3+
using Plots
34
using Random
45

56
if isinteractive()
@@ -120,6 +121,11 @@ end
120121
@test_throws Exception @test_reference "references/camera.png" camera # unequal size
121122
end
122123

124+
@testset "Plots as PNG images" begin
125+
@test_reference "references/heatmap.png" heatmap([1 0; 0 1])
126+
@test_reference "references/scatter.png" scatter([(0,0),(1,0),(0,1),(1,1)],ms=8)
127+
end
128+
123129
using DataFrames, CSVFiles
124130
@testset "DataFrame as CSV" begin
125131
@test_reference "references/dataframe.csv" DataFrame(v1=[1,2,3], v2=["a","b","c"])

0 commit comments

Comments
 (0)