]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/image/image.cpp
i18n files are installed as part of wxBase (and should be ideally part of separate...
[wxWidgets.git] / samples / image / image.cpp
index b8d131102acce50e1403c5868d648b4aead8768a..e52c7e6c08790c3ef9cf33c6f9bd147274a223b8 100644 (file)
@@ -17,7 +17,7 @@
 #endif
 
 #ifndef WX_PRECOMP
-#include "wx/wx.h"
+    #include "wx/wx.h"
 #endif
 
 #include "wx/image.h"
@@ -83,11 +83,13 @@ public:
     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 ;
@@ -169,7 +171,7 @@ public:
                                                 wxT("PCX files (*.pcx)|*.pcx|")
                                                 wxT("ICO files (*.ico)|*.ico|")
                                                 wxT("CUR files (*.cur)|*.cur"),
-                                                wxSAVE,
+                                                wxFD_SAVE,
                                                 this);
 
         if ( savefilename.empty() )
@@ -467,11 +469,15 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id,
     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
@@ -484,12 +490,18 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id,
     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
@@ -685,6 +697,14 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) )
     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 );
@@ -721,8 +741,9 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) )
     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);
@@ -736,6 +757,10 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) )
         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);
@@ -749,7 +774,7 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) )
         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") );
@@ -760,7 +785,7 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) )
                wxRED_PEN->GetColour().Green(),
                wxRED_PEN->GetColour().Blue() );
         dc.DrawBitmap( wxBitmap(i), 150, 2010, true );
-        dc.SetTextForeground( wxT("BLACK") );
+        dc.SetTextForeground( *wxBLACK );
     }
 
 
@@ -789,7 +814,7 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) )
         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") );
@@ -800,7 +825,7 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) )
                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
@@ -871,15 +896,6 @@ 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.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()
@@ -959,7 +975,7 @@ END_EVENT_TABLE()
 
 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();