X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8ef089485c6a880c56d5755b7771bb1aa73328bc..83a4b74e0673efb4f5785bfb0bcada296827dd1b:/samples/image/image.cpp diff --git a/samples/image/image.cpp b/samples/image/image.cpp index d1b7ba60d1..f3cc421650 100644 --- a/samples/image/image.cpp +++ b/samples/image/image.cpp @@ -69,6 +69,7 @@ public: wxBitmap my_horse_pcx; wxBitmap my_horse_pnm; wxBitmap my_horse_tiff; + wxBitmap my_horse_tga; wxBitmap my_horse_xpm; wxBitmap my_horse_ico32; wxBitmap my_horse_ico16; @@ -91,6 +92,9 @@ public: wxBitmap my_toucan_flipped_both; wxBitmap my_toucan_grey; wxBitmap my_toucan_head; + wxBitmap my_toucan_scaled_normal; + wxBitmap my_toucan_scaled_high; + wxBitmap my_toucan_blur; int xH, yH ; int m_ani_images; @@ -456,14 +460,14 @@ END_EVENT_TABLE() #endif // wxHAVE_RAW_BITMAP BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) - EVT_PAINT(MyCanvas::OnPaint) + EVT_PAINT(MyCanvas::OnPaint) END_EVENT_TABLE() MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size ) - : wxScrolledWindow( parent, id, pos, size, wxSUNKEN_BORDER ) - , m_bmpSmileXpm((const char **) smile_xpm) - , m_iconSmileXpm((const char **) smile_xpm) + : wxScrolledWindow( parent, id, pos, size, wxSUNKEN_BORDER ) + , m_bmpSmileXpm(smile_xpm) + , m_iconSmileXpm(smile_xpm) { my_horse_ani = NULL; m_ani_images = 0 ; @@ -518,6 +522,9 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id, my_toucan_flipped_both = wxBitmap(image.Mirror(true).Mirror(false)); my_toucan_grey = wxBitmap(image.ConvertToGreyscale()); my_toucan_head = wxBitmap(image.GetSubImage(wxRect(40, 7, 80, 60))); + my_toucan_scaled_normal = wxBitmap(image.Scale(110,90,wxIMAGE_QUALITY_NORMAL)); + my_toucan_scaled_high = wxBitmap(image.Scale(110,90,wxIMAGE_QUALITY_HIGH)); + my_toucan_blur = wxBitmap(image.Blur(10)); #endif // wxUSE_LIBPNG @@ -612,6 +619,15 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id, my_horse_tiff = wxBitmap( image ); #endif +#if wxUSE_LIBTIFF + image.Destroy(); + + if ( !image.LoadFile( dir + _T("horse.tga"), wxBITMAP_TYPE_TGA ) ) + wxLogError(wxT("Can't load TGA image")); + else + my_horse_tga = wxBitmap( image ); +#endif + CreateAntiAliasedBitmap(); my_smile_xbm = wxBitmap( (const char*)smile_bits, smile_width, @@ -776,46 +792,64 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) ) if (my_horse_tiff.Ok()) dc.DrawBitmap( my_horse_tiff, 30, 1530 ); - dc.DrawText( _T("XPM handler"), 30, 1745 ); + dc.DrawText( _T("TGA handler"), 30, 1745 ); + if (my_horse_tga.Ok()) + dc.DrawBitmap( my_horse_tga, 30, 1760 ); + + dc.DrawText( _T("XPM handler"), 30, 1975 ); if (my_horse_xpm.Ok()) - dc.DrawBitmap( my_horse_xpm, 30, 1760 ); + dc.DrawBitmap( my_horse_xpm, 30, 2000 ); // toucans { int x = 750, y = 10, yy = 170; dc.DrawText(wxT("Original toucan"), x+50, y); - dc.DrawBitmap(my_toucan, x, y+15); + dc.DrawBitmap(my_toucan, x, y+15, true); y += yy; dc.DrawText(wxT("Flipped horizontally"), x+50, y); - dc.DrawBitmap(my_toucan_flipped_horiz, x, y+15); + dc.DrawBitmap(my_toucan_flipped_horiz, x, y+15, true); y += yy; dc.DrawText(wxT("Flipped vertically"), x+50, y); - dc.DrawBitmap(my_toucan_flipped_vert, x, y+15); + dc.DrawBitmap(my_toucan_flipped_vert, x, y+15, true); y += yy; dc.DrawText(wxT("Flipped both h&v"), x+50, y); - dc.DrawBitmap(my_toucan_flipped_both, x, y+15); + dc.DrawBitmap(my_toucan_flipped_both, x, y+15, true); y += yy; dc.DrawText(wxT("In greyscale"), x+50, y); - dc.DrawBitmap(my_toucan_grey, x, y+15); + dc.DrawBitmap(my_toucan_grey, x, y+15, true); y += yy; dc.DrawText(wxT("Toucan's head"), x+50, y); - dc.DrawBitmap(my_toucan_head, x, y+15); + dc.DrawBitmap(my_toucan_head, x, y+15, true); + + y += yy; + dc.DrawText(wxT("Scaled with normal quality"), x+50, y); + dc.DrawBitmap(my_toucan_scaled_normal, x, y+15, true); + + y += yy; + dc.DrawText(wxT("Scaled with high quality"), x+50, y); + dc.DrawBitmap(my_toucan_scaled_high, x, y+15, true); + + y += yy; + dc.DrawText(wxT("Blured"), x+50, y); + dc.DrawBitmap(my_toucan_blur, x, y+15, true); } if (my_smile_xbm.Ok()) { - dc.DrawText( _T("XBM bitmap"), 30, 1975 ); - dc.DrawText( _T("(green on red)"), 30, 1990 ); + int x = 300, y = 1800; + + dc.DrawText( _T("XBM bitmap"), x, y ); + dc.DrawText( _T("(green on red)"), x, y + 15 ); dc.SetTextForeground( _T("GREEN") ); dc.SetTextBackground( _T("RED") ); - dc.DrawBitmap( my_smile_xbm, 30, 2010 ); + dc.DrawBitmap( my_smile_xbm, x, y + 30 ); dc.SetTextForeground( *wxBLACK ); - dc.DrawText( _T("After wxImage conversion"), 150, 1975 ); - dc.DrawText( _T("(red on white)"), 150, 1990 ); + dc.DrawText( _T("After wxImage conversion"), x + 120, y ); + dc.DrawText( _T("(red on white)"), x + 120, y + 15 ); dc.SetTextForeground( wxT("RED") ); wxImage i = my_smile_xbm.ConvertToImage(); i.SetMaskColour( 255, 255, 255 ); @@ -823,7 +857,7 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) ) wxRED_PEN->GetColour().Red(), wxRED_PEN->GetColour().Green(), wxRED_PEN->GetColour().Blue() ); - dc.DrawBitmap( wxBitmap(i), 150, 2010, true ); + dc.DrawBitmap( wxBitmap(i), x + 120, y + 30, true ); dc.SetTextForeground( *wxBLACK ); } @@ -847,15 +881,17 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) ) if (mono.Ok()) { - dc.DrawText( _T("Mono bitmap"), 30, 2095 ); - dc.DrawText( _T("(red on green)"), 30, 2110 ); + int x = 300, y = 1900; + + dc.DrawText( _T("Mono bitmap"), x, y ); + dc.DrawText( _T("(red on green)"), x, y + 15 ); dc.SetTextForeground( wxT("RED") ); dc.SetTextBackground( wxT("GREEN") ); - dc.DrawBitmap( mono, 30, 2130 ); + dc.DrawBitmap( mono, x, y + 30 ); dc.SetTextForeground( *wxBLACK ); - dc.DrawText( _T("After wxImage conversion"), 150, 2095 ); - dc.DrawText( _T("(red on white)"), 150, 2110 ); + dc.DrawText( _T("After wxImage conversion"), x + 120, y ); + dc.DrawText( _T("(red on white)"), x + 120, y + 15 ); dc.SetTextForeground( wxT("RED") ); wxImage i = mono.ConvertToImage(); i.SetMaskColour( 255,255,255 ); @@ -863,7 +899,7 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) ) wxRED_PEN->GetColour().Red(), wxRED_PEN->GetColour().Green(), wxRED_PEN->GetColour().Blue() ); - dc.DrawBitmap( wxBitmap(i), 150, 2130, true ); + dc.DrawBitmap( wxBitmap(i), x + 120, y + 30, true ); dc.SetTextForeground( *wxBLACK ); } @@ -1132,42 +1168,10 @@ void MyFrame::OnPaste(wxCommandEvent& WXUNUSED(event)) bool MyApp::OnInit() { -#if wxUSE_LIBPNG - wxImage::AddHandler( new wxPNGHandler ); -#endif - -#if wxUSE_LIBJPEG - wxImage::AddHandler( new wxJPEGHandler ); -#endif - -#if wxUSE_LIBTIFF - wxImage::AddHandler( new wxTIFFHandler ); -#endif - -#if wxUSE_GIF - wxImage::AddHandler( new wxGIFHandler ); -#endif - -#if wxUSE_PCX - wxImage::AddHandler( new wxPCXHandler ); -#endif - -#if wxUSE_PNM - wxImage::AddHandler( new wxPNMHandler ); -#endif - -#if wxUSE_XPM - wxImage::AddHandler( new wxXPMHandler ); -#endif - -#if wxUSE_ICO_CUR - wxImage::AddHandler( new wxICOHandler ); - wxImage::AddHandler( new wxCURHandler ); - wxImage::AddHandler( new wxANIHandler ); -#endif + wxInitAllImageHandlers(); - wxFrame *frame = new MyFrame(); - frame->Show( true ); + wxFrame *frame = new MyFrame(); + frame->Show( true ); - return true; + return true; }