q = p + *width * 2;
if ( !reverse )
{
- while ( p != q )
+ while ( p < q )
{
*p ++ = *( q - 2 );
*p ++ = *( q - 3 );
}
else
{
- while ( p != q )
+ while ( p < q )
{
*( q - 2 ) = *p ++;
*( q - 3 ) = *p ++;
for ( i = 0; i < hh; i ++ )
{
p = ( uint16_t * )*image + i * *width;
- q = end - i * *width;
+ q = end - ( i + 1 ) * *width;
j = *width;
if ( !reverse )
{
}
}
}
+ else if ( !strcmp( mirror, "xdiagonal" ) )
+ {
+ uint8_t *end = ( uint8_t *)*image + *width * *height * 2;
+ uint8_t *p = NULL;
+ uint8_t *q = NULL;
+ int i;
+ int j;
+ for ( i = 0; i < *height; i ++ )
+ {
+ p = ( uint8_t * )*image + ( i + 1 ) * *width * 2;
+ q = end - ( i + 1 ) * *width * 2;
+ j = ( ( *width * ( *height - i ) ) / *height ) / 2;
+ if ( !reverse )
+ {
+ while ( j -- )
+ {
+ *q ++ = *( p - 2 );
+ *q ++ = *( p - 3 );
+ *q ++ = *( p - 4 );
+ *q ++ = *( p - 1 );
+ p -= 4;
+ }
+ }
+ else
+ {
+ while ( j -- )
+ {
+ *( p - 2 ) = *q ++;
+ *( p - 3 ) = *q ++;
+ *( p - 4 ) = *q ++;
+ *( p - 1 ) = *q ++;
+ p -= 4;
+ }
+ }
+ }
+ }
else if ( !strcmp( mirror, "flip" ) )
{
uint8_t t[ 4 ];
{
p = ( uint8_t * )*image + i * *width * 2;
q = p + *width * 2;
- while ( p != q )
+ while ( p < q )
{
t[ 0 ] = p[ 0 ];
t[ 1 ] = p[ 1 ];
for ( i = 0; i < hh; i ++ )
{
p = ( uint16_t * )*image + i * *width;
- q = end - i * *width;
+ q = end - ( i + 1 ) * *width;
j = *width;
while ( j -- )
{