X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b7cacb43db1e69b87b257a67912b4d52995b070a..ce7208d49d5ce2ca1dc0b3b83f14f1d04f29c4bf:/src/common/image.cpp diff --git a/src/common/image.cpp b/src/common/image.cpp index 4c0464d3cb..a2674529de 100644 --- a/src/common/image.cpp +++ b/src/common/image.cpp @@ -505,7 +505,7 @@ wxImage wxImage::Scale( int width, int height, int quality ) const } // If the original image has a mask, apply the mask to the new image - if (M_IMGDATA->m_hasMask) + if (M_IMGDATA->m_hasMask) { image.SetMaskColour( M_IMGDATA->m_maskRed, M_IMGDATA->m_maskGreen, @@ -571,7 +571,7 @@ wxImage wxImage::ResampleBox(int width, int height) const averaged_pixels = 0; sum_r = sum_g = sum_b = sum_a = 0.0; - for ( int j = src_y - scale_factor_y_2 + 1; + for ( int j = int(src_y - scale_factor_y/2.0 + 1); j <= int(src_y + scale_factor_y_2); j++ ) { @@ -579,7 +579,7 @@ wxImage wxImage::ResampleBox(int width, int height) const if ( j < 0 || j > M_IMGDATA->m_height ) continue; - for ( int i = src_x - scale_factor_x_2 + 1; + for ( int i = int(src_x - scale_factor_x/2.0 + 1); i <= src_x + scale_factor_x_2; i++ ) { @@ -848,7 +848,7 @@ wxImage wxImage::BlurHorizontal(int blurRadius) sum_a += src_alpha[pixel_idx]; // Save off the averaged data - dst = dst_data + x*3 + y*M_IMGDATA->m_width; + dst = dst_data + x*3 + y*M_IMGDATA->m_width*3; dst[0] = (unsigned char)(sum_r / blurArea); dst[1] = (unsigned char)(sum_g / blurArea); dst[2] = (unsigned char)(sum_b / blurArea); @@ -1311,8 +1311,8 @@ void wxImage::Paste( const wxImage &image, int x, int y ) { for (int i = 0; i < width; i+=3) { - if ((source_data[i] != r) && - (source_data[i+1] != g) && + if ((source_data[i] != r) || + (source_data[i+1] != g) || (source_data[i+2] != b)) { memcpy( target_data+i, source_data+i, 3 );