auto a = Image( ivec!1(5), ElemInfo( 2, DataType.FLOAT ) );
a.pixel!vec2(3) = vec2(1,1);
a.pixel!vec2(4) = vec2(2,2);
auto b = imGetCopy( a, Region!(1,int)(3,2) );
assert( b.pixel!vec2(0) == a.pixel!vec2(3) );
assert( b.pixel!vec2(1) == a.pixel!vec2(4) );
ubyte[] imgdata = [
1, 2, 3, 4,
5, 6, 7, 8,
9,10,11,12,
13,14,15,16
];
auto img = Image( ivec2(4,4), 1, DataType.UBYTE, imgdata );
{
ubyte[] r = [ 8,12,16, 7,11,15 ];
assertEq( imGetCopy( img, iRegion2(2,1,2,3), ImRepack.ROT90 ).mapAs!ubyte, r );
}
{
ubyte[] r = [ 14,10,6, 15,11,7 ];
assertEq( imGetCopy( img, iRegion2(1,1,2,3), ImRepack.ROT270 ).mapAs!ubyte, r );
}
{
ubyte[] r= [ 3,2,1, 7,6,5 ];
assertEq( imGetCopy( img, iRegion2(0,0,3,2), ImRepack.MIRHOR ).mapAs!ubyte, r );
}
{
ubyte[] r = [ 5,6,7, 1,2,3 ];
assert( imGetCopy( img, iRegion2(0,0,3,2), ImRepack.MIRVER ).mapAs!ubyte == r );
}ubyte[] img_data =
[
1,2,3,
4,5,6,
7,8,9,
10,11,12,
];
ubyte[] d2l0 = [ 1,2,3,4,5,6 ];
ubyte[] d2l1 = [ 7,8,9,10,11,12 ];
ubyte[] d1l0 = [ 1,2,3,7,8,9 ];
ubyte[] d1l1 = [ 4,5,6,10,11,12 ];
ubyte[] d0l0 = [ 1, 4, 7, 10 ];
ubyte[] d0l1 = [ 2, 5, 8, 11 ];
auto img = Image( ivec3(3,2,2), 1, DataType.UBYTE, img_data );
assertEq( imGetCopy( img, CrdRegionD(0,0,0,3,2,1) ).mapAs!ubyte, d2l0 );
assertEq( imGetCopy( img, CrdRegionD(0,0,1,3,2,1) ).mapAs!ubyte, d2l1 );
assertEq( imGetCopy( img, CrdRegionD(0,0,0,3,1,2) ).mapAs!ubyte, d1l0 );
assertEq( imGetCopy( img, CrdRegionD(0,1,0,3,1,2) ).mapAs!ubyte, d1l1 );
assertEq( imGetCopy( img, CrdRegionD(0,0,0,1,2,2) ).mapAs!ubyte, d0l0 );
assertEq( imGetCopy( img, CrdRegionD(1,0,0,1,2,2) ).mapAs!ubyte, d0l1 );ubyte[] data =
[
2, 1, 3, 5, 2,
9, 1, 2, 6, 3,
2, 5, 2, 9, 1,
8, 3, 6, 3, 0,
6, 2, 8, 1, 5
];
ubyte[] datav1 =
[
1, 2, 6, 3, 0, 0, 0,
5, 2, 9, 1, 0, 0, 0,
3, 6, 3, 0, 0, 0, 0,
2, 8, 1, 5, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0
];
ubyte[] datav2 =
[
0, 0, 0, 0, 0, 0, 0,
0, 2, 1, 3, 5, 2, 0,
0, 9, 1, 2, 6, 3, 0,
0, 2, 5, 2, 9, 1, 0,
0, 8, 3, 6, 3, 0, 0,
0, 6, 2, 8, 1, 5, 0,
0, 0, 0, 0, 0, 0, 0
];
auto orig = Image( ivec2( 7, 7 ), ElemInfo( 1, DataType.UBYTE ) );
auto im = Image( ivec2( 5, 5 ), 1, DataType.UBYTE, data );
auto res = Image(orig);
imCopy( res, ivec2(-1,-1), im );
assert( res.data == datav1 );
res = Image(orig);
imCopy( res, ivec2(1,1), im );
assert( res.data == datav2 );
copy and repack image from region to new image