The Scale() code in the 2.3 tree turned out to
be wrong. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11406 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
08a092f9f4
commit
eeca3a4697
@ -235,6 +235,9 @@ wxImage wxImage::Scale( int width, int height ) const
|
||||
char unsigned *source_data = M_IMGDATA->m_data;
|
||||
char unsigned *target_data = data;
|
||||
|
||||
#if 0
|
||||
// This is nonsense, RR.
|
||||
|
||||
// We do (x, y) -> (x, y)*oldSize/newSize but the valid values of x and y
|
||||
// are from 0 to size-1, hence all decrement the sizes
|
||||
long old_old_width = old_width;
|
||||
@ -255,6 +258,20 @@ wxImage wxImage::Scale( int width, int height ) const
|
||||
target_data += 3;
|
||||
}
|
||||
}
|
||||
#else
|
||||
for (long j = 0; j < height; j++)
|
||||
{
|
||||
long y_offset = (j * old_height / height) * old_width;
|
||||
|
||||
for (long i = 0; i < width; i++)
|
||||
{
|
||||
memcpy( target_data,
|
||||
source_data + 3*(y_offset + ((i * old_width )/ width)),
|
||||
3 );
|
||||
target_data += 3;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
return image;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user