v/vlib/stbi/stbi_test.v

35 lines
844 B
V

import os
import stbi
fn test_stbi_read_write() {
vroot := @VEXEROOT
path := os.join_path(vroot, 'examples', 'assets', 'logo.png')
println('Source path: $path')
d_s := stbi.load(path) or { panic(err) }
println('Image source data:\n $d_s')
out_path := os.join_path(os.temp_dir(), 'test.png')
println('Out path: $out_path')
stbi.stbi_write_png(out_path, d_s.width, d_s.height, 4, d_s.data, d_s.width * 4) or {
panic(err)
}
d_d := stbi.load(out_path) or { panic(err) }
println('Image dest data:\n $d_d')
assert d_s.width == d_d.width
assert d_s.height == d_d.height
assert d_s.nr_channels == d_d.nr_channels
mut v_s := &u32(d_s.data)
mut v_d := &u32(d_d.data)
mut delta := i64(0)
for index in 0 .. (d_d.width * d_d.width) {
unsafe {
delta += v_s[index] - v_d[index]
}
}
assert 0 == delta
os.rm(out_path) or {}
}