#endif
#ifndef WX_PRECOMP
-#include "wx/wx.h"
+ #include "wx/wx.h"
#endif
#include "wx/image.h"
wxBitmap my_horse_rawgrey_pnm;
wxBitmap colorized_horse_jpeg;
+ wxBitmap my_cmyk_jpeg;
wxBitmap my_toucan;
wxBitmap my_toucan_flipped_horiz;
wxBitmap my_toucan_flipped_vert;
wxBitmap my_toucan_flipped_both;
+ wxBitmap my_toucan_grey;
wxBitmap my_toucan_head;
int xH, yH ;
wxT("PCX files (*.pcx)|*.pcx|")
wxT("ICO files (*.ico)|*.ico|")
wxT("CUR files (*.cur)|*.cur"),
- wxSAVE,
+ wxFD_SAVE,
this);
if ( savefilename.empty() )
else
my_horse_png = wxBitmap( image );
- image = wxImage(wxT("toucan.png"));
- my_toucan = wxBitmap(image);
+ if ( !image.LoadFile( dir + _T("toucan.png")) )
+ wxLogError(wxT("Can't load PNG image"));
+ else
+ my_toucan = wxBitmap(image);
+
my_toucan_flipped_horiz = wxBitmap(image.Mirror(true));
my_toucan_flipped_vert = wxBitmap(image.Mirror(false));
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)));
#endif // wxUSE_LIBPNG
else
{
my_horse_jpeg = 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 = wxBitmap( image );
}
+
+ if ( !image.LoadFile( dir + _T("cmyk.jpg")) )
+ wxLogError(_T("Can't load CMYK JPG image"));
+ else
+ my_cmyk_jpeg = wxBitmap(image);
#endif // wxUSE_LIBJPEG
#if wxUSE_GIF
if (my_horse_jpeg.Ok())
dc.DrawBitmap( my_horse_jpeg, 30, 380 );
+ dc.DrawText( _T("Green rotated to red"), 280, 365 );
+ if (colorized_horse_jpeg.Ok())
+ dc.DrawBitmap( colorized_horse_jpeg, 280, 380 );
+
+ dc.DrawText( _T("CMYK JPEG image"), 530, 365 );
+ if (my_cmyk_jpeg.Ok())
+ dc.DrawBitmap( my_cmyk_jpeg, 530, 380 );
+
dc.DrawText( _T("GIF handler"), 30, 595 );
if (my_horse_gif.Ok())
dc.DrawBitmap( my_horse_gif, 30, 610 );
if (my_horse_xpm.Ok())
dc.DrawBitmap( my_horse_xpm, 30, 1760 );
+ // toucans
{
- int x = 200, y = 300, yy = 170;;
+ int x = 750, y = 10, yy = 170;
dc.DrawText(wxT("Original toucan"), x+50, y);
dc.DrawBitmap(my_toucan, x, y+15);
dc.DrawText(wxT("Flipped both h&v"), x+50, y);
dc.DrawBitmap(my_toucan_flipped_both, x, y+15);
+ y += yy;
+ dc.DrawText(wxT("In greyscale"), x+50, y);
+ dc.DrawBitmap(my_toucan_grey, x, y+15);
+
y += yy;
dc.DrawText(wxT("Toucan's head"), x+50, y);
dc.DrawBitmap(my_toucan_head, x, y+15);
dc.SetTextBackground( _T("RED") );
dc.DrawBitmap( my_smile_xbm, 30, 2010 );
- dc.SetTextForeground( wxT("BLACK") );
+ dc.SetTextForeground( *wxBLACK );
dc.DrawText( _T("After wxImage conversion"), 150, 1975 );
dc.DrawText( _T("(red on white)"), 150, 1990 );
dc.SetTextForeground( wxT("RED") );
wxRED_PEN->GetColour().Green(),
wxRED_PEN->GetColour().Blue() );
dc.DrawBitmap( wxBitmap(i), 150, 2010, true );
- dc.SetTextForeground( wxT("BLACK") );
+ dc.SetTextForeground( *wxBLACK );
}
dc.SetTextBackground( wxT("GREEN") );
dc.DrawBitmap( mono, 30, 2130 );
- dc.SetTextForeground( wxT("BLACK") );
+ dc.SetTextForeground( *wxBLACK );
dc.DrawText( _T("After wxImage conversion"), 150, 2095 );
dc.DrawText( _T("(red on white)"), 150, 2110 );
dc.SetTextForeground( wxT("RED") );
wxRED_PEN->GetColour().Green(),
wxRED_PEN->GetColour().Blue() );
dc.DrawBitmap( wxBitmap(i), 150, 2130, true );
- dc.SetTextForeground( wxT("BLACK") );
+ dc.SetTextForeground( *wxBLACK );
}
// For testing transparency
dc.DrawBitmap( my_horse_ani[i], 230 + i * 2 * my_horse_ani[i].GetWidth() , 2420, true );
}
}
-
-#if wxUSE_LIBJPEG
- if (colorized_horse_jpeg.Ok())
- {
- 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()
MyFrame::MyFrame()
: wxFrame( (wxFrame *)NULL, wxID_ANY, _T("wxImage sample"),
- wxPoint(20,20), wxSize(470,360) )
+ wxPoint(20, 20), wxSize(950, 700) )
{
wxMenuBar *menu_bar = new wxMenuBar();