fix dzsave tile-width default
was wrong for google / zoomify layouts revise tests too
This commit is contained in:
parent
aa635f7816
commit
dbf9a5ed1c
8
TODO
8
TODO
@ -4,15 +4,11 @@
|
|||||||
|
|
||||||
- still not happy about float->int mask conversion in im_vips2mask.c
|
- still not happy about float->int mask conversion in im_vips2mask.c
|
||||||
|
|
||||||
- looks like we have a race in tiled threadcache? see
|
- need to follow up on
|
||||||
|
|
||||||
https://github.com/jcupitt/libvips/issues/347
|
https://github.com/jcupitt/libvips/issues/347
|
||||||
|
|
||||||
oh argh out of order reads ... but why would they add a few black tiles?
|
trying new shrinker, also try resize change, should be fixed
|
||||||
|
|
||||||
trying new shrinker
|
|
||||||
|
|
||||||
also try resize change
|
|
||||||
|
|
||||||
- colour needs to split _build() into preprocess / process / postprocess
|
- colour needs to split _build() into preprocess / process / postprocess
|
||||||
phases
|
phases
|
||||||
|
@ -1537,6 +1537,14 @@ vips_foreign_save_dz_build( VipsObject *object )
|
|||||||
VIPS_SETSTR( dz->suffix, ".jpg" );
|
VIPS_SETSTR( dz->suffix, ".jpg" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Google and zoomify default to 256 pixel tiles.
|
||||||
|
*/
|
||||||
|
if( dz->layout == VIPS_FOREIGN_DZ_LAYOUT_ZOOMIFY ||
|
||||||
|
dz->layout == VIPS_FOREIGN_DZ_LAYOUT_GOOGLE ) {
|
||||||
|
if( !vips_object_argument_isset( object, "tile_size" ) )
|
||||||
|
dz->tile_size = 256;
|
||||||
|
}
|
||||||
|
|
||||||
/* Default to white background. vips_foreign_save_init() defaults to
|
/* Default to white background. vips_foreign_save_init() defaults to
|
||||||
* black.
|
* black.
|
||||||
*/
|
*/
|
||||||
|
@ -360,27 +360,26 @@ class TestForeign(unittest.TestCase):
|
|||||||
# test the overlap for equality
|
# test the overlap for equality
|
||||||
self.colour.dzsave("test", suffix = ".png")
|
self.colour.dzsave("test", suffix = ".png")
|
||||||
|
|
||||||
# test right edge ... default is 256x256 tiles, overlap 1
|
# tes horizontal overlap ... expect 256 step, overlap 1
|
||||||
tiles_across = int(self.colour.width / 256)
|
x = Vips.Image.new_from_file("test_files/10/0_0.png")
|
||||||
tiles_down = int(self.colour.height / 256)
|
self.assertEqual(x.width, 255)
|
||||||
|
y = Vips.Image.new_from_file("test_files/10/1_0.png")
|
||||||
x = Vips.Image.new_from_file("test_files/10/%d_0.png" % (tiles_across - 2))
|
self.assertEqual(y.width, 256)
|
||||||
self.assertEqual(x.width, 258)
|
|
||||||
y = Vips.Image.new_from_file("test_files/10/%d_0.png" % (tiles_across - 1))
|
|
||||||
predict_width = self.colour.width - 256 * (tiles_across - 1) + 1
|
|
||||||
self.assertEqual(y.width, predict_width)
|
|
||||||
|
|
||||||
# the right two columns of x should equal the left two columns of y
|
# the right two columns of x should equal the left two columns of y
|
||||||
left = x.crop(x.width - 2, 0, 2, x.height)
|
left = x.crop(x.width - 2, 0, 2, x.height)
|
||||||
right = y.crop(0, 0, 2, y.height)
|
right = y.crop(0, 0, 2, y.height)
|
||||||
self.assertEqual((left - right).abs().max(), 0)
|
self.assertEqual((left - right).abs().max(), 0)
|
||||||
|
|
||||||
# test bottom edge
|
# test vertical overlap
|
||||||
x = Vips.Image.new_from_file("test_files/10/0_%d.png" % (tiles_down - 2))
|
self.assertEqual(x.height, 255)
|
||||||
self.assertEqual(x.height, 258)
|
y = Vips.Image.new_from_file("test_files/10/0_1.png")
|
||||||
y = Vips.Image.new_from_file("test_files/10/0_%d.png" % (tiles_down - 1))
|
self.assertEqual(y.height, 256)
|
||||||
predict_height = self.colour.height - 256 * (tiles_down - 1) + 1
|
|
||||||
self.assertEqual(y.height, predict_height)
|
# the bottom two rows of x should equal the top two rows of y
|
||||||
|
top = x.crop(0, x.height - 2, x.width, 2)
|
||||||
|
bottom = y.crop(0, 0, y.width, 2)
|
||||||
|
self.assertEqual((top - bottom).abs().max(), 0)
|
||||||
|
|
||||||
# there should be a bottom layer
|
# there should be a bottom layer
|
||||||
x = Vips.Image.new_from_file("test_files/0/0_0.png")
|
x = Vips.Image.new_from_file("test_files/0/0_0.png")
|
||||||
@ -429,7 +428,7 @@ class TestForeign(unittest.TestCase):
|
|||||||
self.colour.dzsave("test", suffix = ".png")
|
self.colour.dzsave("test", suffix = ".png")
|
||||||
|
|
||||||
x = Vips.Image.new_from_file("test_files/10/0_0.png")
|
x = Vips.Image.new_from_file("test_files/10/0_0.png")
|
||||||
self.assertEqual(x.width, 257)
|
self.assertEqual(x.width, 255)
|
||||||
|
|
||||||
shutil.rmtree("test_files")
|
shutil.rmtree("test_files")
|
||||||
os.unlink("test.dzi")
|
os.unlink("test.dzi")
|
||||||
@ -438,7 +437,7 @@ class TestForeign(unittest.TestCase):
|
|||||||
self.colour.dzsave("test", overlap = 200)
|
self.colour.dzsave("test", overlap = 200)
|
||||||
|
|
||||||
y = Vips.Image.new_from_file("test_files/10/1_1.jpeg")
|
y = Vips.Image.new_from_file("test_files/10/1_1.jpeg")
|
||||||
self.assertEqual(y.width, 256 + 200 * 2)
|
self.assertEqual(y.width, 654)
|
||||||
|
|
||||||
shutil.rmtree("test_files")
|
shutil.rmtree("test_files")
|
||||||
os.unlink("test.dzi")
|
os.unlink("test.dzi")
|
||||||
|
Loading…
Reference in New Issue
Block a user