]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/image/image.cpp
A few tweaks and cleanups
[wxWidgets.git] / samples / image / image.cpp
index c0668f233152a694988abd0ea6ee85178b24232f..262078f92c0773e3de1a066aa376afab19247b79 100644 (file)
@@ -138,7 +138,7 @@ public:
 
     void OnSave(wxCommandEvent& WXUNUSED(event))
     {
-        wxImage image(m_bitmap);
+        wxImage image = m_bitmap.ConvertToImage();
 
         int bppselection = wxGetSingleChoiceIndex("Set BMP BPP",
                                                   "Set BMP BPP",
@@ -183,34 +183,28 @@ public:
             delete cmap;
         }
 
-        bool saved = FALSE;
-
+        bool loaded;
         wxString extension = savefilename.AfterLast('.').Lower();
 
-        if (extension == "bmp")
-            saved=image.SaveFile(savefilename, wxBITMAP_TYPE_BMP);
-        else if (extension == "png")
-            saved=image.SaveFile(savefilename, wxBITMAP_TYPE_PNG);
-        else if (extension == "pcx")
-            saved=image.SaveFile(savefilename, wxBITMAP_TYPE_PCX);
-        else if ((extension == "tif") || (extension == "tiff"))
-            saved=image.SaveFile(savefilename, wxBITMAP_TYPE_TIF);
-        else if (extension == "jpg")
-            saved=image.SaveFile(savefilename, wxBITMAP_TYPE_JPEG);
-        else if (extension == "pnm")
-            saved=image.SaveFile(savefilename, wxBITMAP_TYPE_PNM);
-        else if (extension == "ico")
-            saved=image.SaveFile(savefilename, wxBITMAP_TYPE_ICO);
-        else if (extension == "cur")
-            {
+        if (extension == "cur")
+        {
             image.Rescale(32,32);    
             image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 0);    
-            image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 0);    
-            saved=image.SaveFile(savefilename, wxBITMAP_TYPE_CUR);
-            }
-        else
-            wxMessageBox("Unknown file type, see options in file selector.",
-                         "Unknown file type",
+            image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 0);
+            // This shows how you can save an image with explicitly
+            // specified image format:
+            loaded = image.SaveFile(savefilename, wxBITMAP_TYPE_CUR);
+        }
+        else 
+        {
+            // This one guesses image format from filename extension
+            // (it may fail if the extension is not recognized):
+            loaded = image.SaveFile(savefilename);
+        }
+        
+        if ( !loaded )
+            wxMessageBox("No handler for this file type.",
+                         "File was not saved",
                          wxOK|wxCENTRE, this);
     }
 
@@ -323,7 +317,8 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id,
 #if wxUSE_GIF
     image.Destroy();
 
-    if ( !image.LoadFile( dir + wxString("horse.gif")) )
+    if ( !image.LoadFile( dir + wxString("horse.gif")))
+    //if ( !image.LoadFile( wxString("\\slidbar.gif"), wxBITMAP_TYPE_GIF, -2) )
         wxLogError(wxT("Can't load GIF image"));
     else
         my_horse_gif = new wxBitmap( image );
@@ -436,6 +431,7 @@ MyCanvas::~MyCanvas()
     delete my_horse_ico32;
     delete my_horse_ico16;
     delete my_horse_ico;
+    delete my_horse_cur;
     delete my_smile_xbm;
     delete my_square;
     delete my_anti;
@@ -516,7 +512,7 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) )
                wxRED_PEN->GetColour().Red(),
                wxRED_PEN->GetColour().Green(),
                wxRED_PEN->GetColour().Blue() );
-        dc.DrawBitmap( i.ConvertToBitmap(), 150, 2010, TRUE );
+        dc.DrawBitmap( wxBitmap(i), 150, 2010, TRUE );
         dc.SetTextForeground( wxT("BLACK") );
     }
 
@@ -553,7 +549,7 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) )
                wxRED_PEN->GetColour().Red(),
                wxRED_PEN->GetColour().Green(),
                wxRED_PEN->GetColour().Blue() );
-        dc.DrawBitmap( i.ConvertToBitmap(), 150, 2130, TRUE );
+        dc.DrawBitmap( wxBitmap(i), 150, 2130, TRUE );
         dc.SetTextForeground( wxT("BLACK") );
     }
 
@@ -637,7 +633,7 @@ void MyCanvas::CreateAntiAliasedBitmap()
        blue = blue/4;
        anti.SetRGB( x, y, red, green, blue );
     }
-  my_anti = new wxBitmap( anti.ConvertToBitmap() );
+  my_anti = new wxBitmap(anti);
 }
 
 // MyFrame
@@ -706,7 +702,7 @@ void MyFrame::OnNewFrame( wxCommandEvent &WXUNUSED(event) )
         return;
     }
 
-    (new MyImageFrame(this, image.ConvertToBitmap()))->Show();
+    (new MyImageFrame(this, wxBitmap(image)))->Show();
 }
 
 //-----------------------------------------------------------------------------