wxBitmap *my_square;
wxBitmap *my_anti;
+ wxBitmap *my_horse_asciigrey_pnm;
+ wxBitmap *my_horse_rawgrey_pnm;
+
+ wxBitmap *colorized_horse_jpeg;
+
int xH, yH ;
int m_ani_images ;
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|")
- wxT("JPEG files (*.jpg)|*.jpg|")
- wxT("GIF files (*.gif)|*.gif|")
- wxT("TIFF files (*.tif)|*.tif|")
- wxT("PCX files (*.pcx)|*.pcx|")
- wxT("ICO files (*.ico)|*.ico|")
- wxT("CUR files (*.cur)|*.cur"),
+ wxT("BMP files (*.bmp)|*.bmp|")
+ wxT("PNG files (*.png)|*.png|")
+ wxT("JPEG files (*.jpg)|*.jpg|")
+ wxT("GIF files (*.gif)|*.gif|")
+ wxT("TIFF files (*.tif)|*.tif|")
+ wxT("PCX files (*.pcx)|*.pcx|")
+ wxT("ICO files (*.ico)|*.ico|")
+ wxT("CUR files (*.cur)|*.cur"),
wxSAVE,
this);
cmap[i] = (unsigned char)i;
image.SetPalette(wxPalette(256, cmap, cmap, cmap));
- delete cmap;
+ delete[] cmap;
}
}
}
// (it may fail if the extension is not recognized):
image.SaveFile(savefilename);
}
+#endif // wxUSE_FILEDLG
}
private:
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;
my_anti = (wxBitmap*) NULL;
+ my_horse_asciigrey_pnm = (wxBitmap*) NULL;
+ my_horse_rawgrey_pnm = (wxBitmap*) NULL;
+
m_ani_images = 0 ;
SetBackgroundColour(* wxWHITE);
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
wxLogError(wxT("Can't load PNM image"));
else
my_horse_pnm = new wxBitmap( image );
+
+ image.Destroy();
+
+ if ( !image.LoadFile( dir + _T("horse_ag.pnm"), wxBITMAP_TYPE_PNM ) )
+ wxLogError(wxT("Can't load PNM image"));
+ else
+ my_horse_asciigrey_pnm = new wxBitmap( image );
+
+ image.Destroy();
+
+ if ( !image.LoadFile( dir + _T("horse_rg.pnm"), wxBITMAP_TYPE_PNM ) )
+ wxLogError(wxT("Can't load PNM image"));
+ else
+ my_horse_rawgrey_pnm = new wxBitmap( image );
#endif
#if wxUSE_LIBTIFF
delete my_smile_xbm;
delete my_square;
delete my_anti;
+ delete my_horse_asciigrey_pnm;
+ delete my_horse_rawgrey_pnm;
+ delete colorized_horse_jpeg;
}
void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) )
if (my_horse_pnm && my_horse_pnm->Ok())
dc.DrawBitmap( *my_horse_pnm, 30, 1300 );
+ dc.DrawText( _T("PNM handler (ascii grey)"), 280, 1285 );
+ if (my_horse_asciigrey_pnm && my_horse_asciigrey_pnm->Ok())
+ dc.DrawBitmap( *my_horse_asciigrey_pnm, 280, 1300 );
+
+ dc.DrawText( _T("PNM handler (raw grey)"), 530, 1285 );
+ if (my_horse_rawgrey_pnm && my_horse_rawgrey_pnm->Ok())
+ dc.DrawBitmap( *my_horse_rawgrey_pnm, 530, 1300 );
+
dc.DrawText( _T("TIFF handler"), 30, 1515 );
if (my_horse_tiff && my_horse_tiff->Ok())
dc.DrawBitmap( *my_horse_tiff, 30, 1530 );
{
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()
enum
{
- ID_QUIT = 108,
- ID_ABOUT,
- ID_NEW,
- ID_SHOWRAW
+ ID_QUIT = wxID_EXIT,
+ ID_ABOUT = wxID_ABOUT,
+ ID_NEW = 100,
+ ID_SHOWRAW = 101
};
IMPLEMENT_DYNAMIC_CLASS( MyFrame, wxFrame )
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) )
void MyFrame::OnNewFrame( wxCommandEvent &WXUNUSED(event) )
{
+#if wxUSE_FILEDLG
wxString filename = wxFileSelector(_T("Select image file"));
if ( !filename )
return;
}
(new MyImageFrame(this, wxBitmap(image)))->Show();
+#endif // wxUSE_FILEDLG
}
#ifdef wxHAVE_RAW_BITMAP
return true;
}
-