mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-30 04:20:23 +00:00
Add tests to compare -sheet-type columns vs. rows and -trim vs -trim-sprite
This commit is contained in:
parent
4ddb08203a
commit
fdf8adc947
39
cli/sheet.sh
39
cli/sheet.sh
@ -166,3 +166,42 @@ assert(#sheet1.frames == 12)
|
||||
assert(#sheet2.frames == 4)
|
||||
EOF
|
||||
$ASEPRITE -b -script "$d/check.lua" || exit 1
|
||||
|
||||
# -sheet -sheet-columns vs -sheet-rows
|
||||
|
||||
d=$t/sheet-columns-and-rows
|
||||
$ASEPRITE -b -split-layers sprites/1empty3.aseprite \
|
||||
-filename-format "{layer}{frame}" \
|
||||
-sheet "$d/sheet1.png" \
|
||||
-sheet-type rows \
|
||||
-sheet-columns 3 \
|
||||
-data "$d/sheet1.json" || exit $?
|
||||
$ASEPRITE -b -split-layers sprites/1empty3.aseprite \
|
||||
-filename-format "{layer}{frame}" \
|
||||
-sheet "$d/sheet2.png" \
|
||||
-sheet-type columns \
|
||||
-sheet-rows 3 \
|
||||
-data "$d/sheet2.json" || exit $?
|
||||
$ASEPRITE -b \
|
||||
-script-param file1=$d/sheet1.json \
|
||||
-script-param file2=$d/sheet2.json \
|
||||
-script scripts/compare_sprite_sheets.lua || exit $?
|
||||
|
||||
# -sheet -trim vs -trim-sprite
|
||||
|
||||
d=$t/sheet-columns-and-rows
|
||||
$ASEPRITE -b -split-layers sprites/1empty3.aseprite \
|
||||
-trim \
|
||||
-filename-format "{layer}{frame}" \
|
||||
-sheet "$d/sheet1.png" \
|
||||
-data "$d/sheet1.json" || exit $?
|
||||
|
||||
$ASEPRITE -b -split-layers sprites/1empty3.aseprite \
|
||||
-trim-sprite \
|
||||
-filename-format "{layer}{frame}" \
|
||||
-sheet "$d/sheet2.png" \
|
||||
-data "$d/sheet2.json" || exit $?
|
||||
$ASEPRITE -b \
|
||||
-script-param file1=$d/sheet1.json \
|
||||
-script-param file2=$d/sheet2.json \
|
||||
-script scripts/compare_sprite_sheets.lua || exit $?
|
||||
|
60
scripts/compare_sprite_sheets.lua
Normal file
60
scripts/compare_sprite_sheets.lua
Normal file
@ -0,0 +1,60 @@
|
||||
-- Copyright (C) 2019 Igara Studio S.A.
|
||||
--
|
||||
-- This file is released under the terms of the MIT license.
|
||||
-- Read LICENSE.txt for more information.
|
||||
|
||||
local file1 = app.params["file1"]
|
||||
local file2 = app.params["file2"]
|
||||
if file1 == nil or file2 == nil then
|
||||
return 0
|
||||
end
|
||||
|
||||
local json = dofile('../third_party/json/json.lua')
|
||||
local data1 = json.decode(io.open(file1):read('a'))
|
||||
local data2 = json.decode(io.open(file2):read('a'))
|
||||
|
||||
if data1 == nil then
|
||||
print('Cannot read file ' .. file1)
|
||||
return 1
|
||||
elseif data2 == nil then
|
||||
print('Cannot read file ' .. file2)
|
||||
return 1
|
||||
end
|
||||
|
||||
local function replace_filename(fn, newfn)
|
||||
return string.gsub(fn, "(.*)[/\\]([^/\\]+)", "%1/"..newfn)
|
||||
end
|
||||
|
||||
local sheet1 = app.open(replace_filename(file1, data1.meta.image))
|
||||
local sheet2 = app.open(replace_filename(file2, data2.meta.image))
|
||||
|
||||
for k,v in pairs(data1.frames) do
|
||||
local fr1 = data1.frames[k]
|
||||
local fr2 = data2.frames[k]
|
||||
if fr1.duration ~= fr2.duration then
|
||||
print('Frame '..k..' doesn\'t match duration')
|
||||
return 1
|
||||
end
|
||||
if fr1.sourceSize.w ~= fr2.sourceSize.w or
|
||||
fr1.sourceSize.h ~= fr2.sourceSize.h then
|
||||
print('Frame '..k..' doesn\'t match sourceSize')
|
||||
return 1
|
||||
end
|
||||
|
||||
local celImage1 = Image(fr1.frame.w, fr1.frame.h, sheet1.colorMode)
|
||||
local celImage2 = Image(fr2.frame.w, fr2.frame.h, sheet2.colorMode)
|
||||
celImage1:drawSprite(sheet1, 1, -fr1.frame.x, -fr1.frame.y)
|
||||
celImage2:drawSprite(sheet2, 1, -fr2.frame.x, -fr2.frame.y)
|
||||
|
||||
local frImage1 = Image(fr1.sourceSize.w, fr1.sourceSize.h, sheet1.colorMode)
|
||||
local frImage2 = Image(fr2.sourceSize.w, fr2.sourceSize.h, sheet2.colorMode)
|
||||
frImage1:drawImage(celImage1, fr1.spriteSourceSize.x, fr1.spriteSourceSize.y)
|
||||
frImage2:drawImage(celImage2, fr2.spriteSourceSize.x, fr2.spriteSourceSize.y)
|
||||
|
||||
-- To debug this function
|
||||
--frImage1:saveAs(replace_filename(file1, k .. "-fr1.png"))
|
||||
--frImage2:saveAs(replace_filename(file2, k .. "-fr2.png"))
|
||||
--print(k, "fr1", fr1.frame.x, fr1.frame.y, "fr2", fr2.frame.x, fr2.frame.y)
|
||||
|
||||
assert(frImage1:isEqual(frImage2))
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user