X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d0ee33f5c6908b4ac5e1364381f0ef00942e3936..1661354b7768a23db967756181858ac32ca03d01:/samples/image/image.cpp diff --git a/samples/image/image.cpp b/samples/image/image.cpp index 159f7fe26b..04e04cd670 100644 --- a/samples/image/image.cpp +++ b/samples/image/image.cpp @@ -84,6 +84,8 @@ public: wxBitmap *my_horse_asciigrey_pnm; wxBitmap *my_horse_rawgrey_pnm; + wxBitmap *colorized_horse_jpeg; + int xH, yH ; int m_ani_images ; @@ -149,11 +151,12 @@ public: void OnSave(wxMouseEvent& WXUNUSED(event)) { +#if wxUSE_FILEDLG wxImage image = m_bitmap.ConvertToImage(); wxString savefilename = wxFileSelector( wxT("Save Image"), - wxT(""), - wxT(""), + wxEmptyString, + wxEmptyString, (const wxChar *)NULL, wxT("BMP files (*.bmp)|*.bmp|") wxT("PNG files (*.png)|*.png|") @@ -269,6 +272,7 @@ public: // (it may fail if the extension is not recognized): image.SaveFile(savefilename); } +#endif // wxUSE_FILEDLG } private: @@ -408,6 +412,7 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id, my_horse_ico = (wxBitmap*) NULL; my_horse_cur = (wxBitmap*) NULL; my_horse_ani = (wxBitmap*) NULL; + colorized_horse_jpeg = (wxBitmap*) NULL; my_smile_xbm = (wxBitmap*) NULL; my_square = (wxBitmap*) NULL; @@ -465,7 +470,14 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id, if ( !image.LoadFile( dir + _T("horse.jpg")) ) wxLogError(wxT("Can't load JPG image")); else + { my_horse_jpeg = new wxBitmap( image ); + // Colorize by rotating green hue to red + wxImage::HSVValue greenHSV = wxImage::RGBtoHSV(wxImage::RGBValue(0, 255, 0)); + wxImage::HSVValue redHSV = wxImage::RGBtoHSV(wxImage::RGBValue(255, 0, 0)); + image.RotateHue(redHSV.hue - greenHSV.hue); + colorized_horse_jpeg = new wxBitmap( image ); + } #endif // wxUSE_LIBJPEG #if wxUSE_GIF @@ -644,6 +656,7 @@ MyCanvas::~MyCanvas() delete my_anti; delete my_horse_asciigrey_pnm; delete my_horse_rawgrey_pnm; + delete colorized_horse_jpeg; } void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) ) @@ -843,6 +856,14 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) ) { dc.DrawBitmap( my_horse_ani[i], 230 + i * 2 * my_horse_ani[i].GetWidth() , 2420, true ); } +#if wxUSE_LIBJPEG + if (colorized_horse_jpeg) + { + dc.DrawText( _T("Colorize image by rotating green hue to red"), 30, 2490 ); + dc.DrawBitmap( *colorized_horse_jpeg, 30, 2520 ); + } +#endif // wxUSE_LIBJPEG + } void MyCanvas::CreateAntiAliasedBitmap() @@ -955,8 +976,8 @@ MyFrame::MyFrame() m_canvas = new MyCanvas( this, wxID_ANY, wxPoint(0,0), wxSize(10,10) ); - // 500 width * 2500 height - m_canvas->SetScrollbars( 10, 10, 50, 250 ); + // 500 width * 2750 height + m_canvas->SetScrollbars( 10, 10, 50, 275 ); } void MyFrame::OnQuit( wxCommandEvent &WXUNUSED(event) ) @@ -973,6 +994,7 @@ void MyFrame::OnAbout( wxCommandEvent &WXUNUSED(event) ) void MyFrame::OnNewFrame( wxCommandEvent &WXUNUSED(event) ) { +#if wxUSE_FILEDLG wxString filename = wxFileSelector(_T("Select image file")); if ( !filename ) return; @@ -986,6 +1008,7 @@ void MyFrame::OnNewFrame( wxCommandEvent &WXUNUSED(event) ) } (new MyImageFrame(this, wxBitmap(image)))->Show(); +#endif // wxUSE_FILEDLG } #ifdef wxHAVE_RAW_BITMAP @@ -1077,4 +1100,3 @@ bool MyApp::OnInit() return true; } -