const int scale_factor_x_2 = (int)(scale_factor_x / 2);
const int scale_factor_y_2 = (int)(scale_factor_y / 2);
- // If we want good-looking results we need to pre-blur the image a bit first
- wxImage src_image(*this);
- src_image = src_image.BlurHorizontal(scale_factor_x_2);
- src_image = src_image.BlurVertical(scale_factor_y_2);
-
- unsigned char* src_data = src_image.GetData();
- unsigned char* src_alpha = src_image.GetAlpha();
+ unsigned char* src_data = M_IMGDATA->m_data;
+ unsigned char* src_alpha = M_IMGDATA->m_alpha;
unsigned char* dst_data = ret_image.GetData();
unsigned char* dst_alpha = NULL;
j++ )
{
// We don't care to average pixels that don't exist (edges)
- if ( j < 0 || j > M_IMGDATA->m_height )
+ if ( j < 0 || j > M_IMGDATA->m_height - 1 )
continue;
for ( int i = int(src_x - scale_factor_x/2.0 + 1);
i++ )
{
// Don't average edge pixels
- if ( i < 0 || i > M_IMGDATA->m_width )
+ if ( i < 0 || i > M_IMGDATA->m_width - 1 )
continue;
// Calculate the actual index in our source pixels
- src_pixel_index = src_y * M_IMGDATA->m_width + src_x;
+ src_pixel_index = j * M_IMGDATA->m_width + i;
sum_r += src_data[src_pixel_index * 3 + 0];
sum_g += src_data[src_pixel_index * 3 + 1];
}
// Blur in the horizontal direction
-wxImage wxImage::BlurHorizontal(int blurRadius)
+wxImage wxImage::BlurHorizontal(int blurRadius) const
{
wxImage ret_image;
ret_image.Create(M_IMGDATA->m_width, M_IMGDATA->m_height, false);
}
// Blur in the vertical direction
-wxImage wxImage::BlurVertical(int blurRadius)
+wxImage wxImage::BlurVertical(int blurRadius) const
{
wxImage ret_image;
ret_image.Create(M_IMGDATA->m_width, M_IMGDATA->m_height, false);
}
// The new blur function
-wxImage wxImage::Blur(int blurRadius)
+wxImage wxImage::Blur(int blurRadius) const
{
wxImage ret_image;
ret_image.Create(M_IMGDATA->m_width, M_IMGDATA->m_height, false);
node = node->GetNext();
}
- return 0;
+ return NULL;
}
wxImageHandler *wxImage::FindHandler( const wxString& extension, long bitmapType )
return handler;
node = node->GetNext();
}
- return 0;
+ return NULL;
}
wxImageHandler *wxImage::FindHandler( long bitmapType )
if (handler->GetType() == bitmapType) return handler;
node = node->GetNext();
}
- return 0;
+ return NULL;
}
wxImageHandler *wxImage::FindHandlerMime( const wxString& mimetype )
if (handler->GetMimeType().IsSameAs(mimetype, false)) return handler;
node = node->GetNext();
}
- return 0;
+ return NULL;
}
void wxImage::InitStandardHandlers()