2005-10-04 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / class / System.Drawing / Samples / System.Drawing / BmpPaint.cs
1 //
2 // BmpPaint.cs sample application
3 //
4 // Author:
5 //   Alexandre Pigolkine(pigolkine@gmx.de)
6 // 
7 //
8 // (C) Ximian, Inc.  http://www.ximian.com
9 //
10 //
11 // Copyright (C) 2004 Novell, Inc (http://www.novell.com)
12 //
13 // Permission is hereby granted, free of charge, to any person obtaining
14 // a copy of this software and associated documentation files (the
15 // "Software"), to deal in the Software without restriction, including
16 // without limitation the rights to use, copy, modify, merge, publish,
17 // distribute, sublicense, and/or sell copies of the Software, and to
18 // permit persons to whom the Software is furnished to do so, subject to
19 // the following conditions:
20 // 
21 // The above copyright notice and this permission notice shall be
22 // included in all copies or substantial portions of the Software.
23 // 
24 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
25 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
27 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
28 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
29 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
30 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 //
32
33 using System;
34 using System.Drawing;
35 using System.Drawing.Imaging;
36
37 namespace MonoSamples.System.Drawing
38 {
39         public class BmpPaint
40         {
41                 static public void CreateBitmap (string filename, ImageFormat imgFmt) {
42                         Bitmap  bmp = new Bitmap (100, 100, PixelFormat.Format24bppRgb);
43                         Console.WriteLine ("Bitmap created OK {0}", bmp != null);
44                         if ( bmp != null) {
45                                 Console.WriteLine ("Bitmap Pixelformat {0}", bmp.PixelFormat);
46                         }
47
48                         Graphics gr = Graphics.FromImage (bmp);
49                         Console.WriteLine ("Graphics created OK {0}", gr != null);
50                         if (gr != null) {
51                                 Pen p = new Pen (Color.Red, 2);
52                                 gr.DrawLine (p, 10.0F, 10.0F, 90.0F, 90.0F);
53                                 gr.DrawRectangle (p, 10.0F, 10.0F, 80.0F, 80.0F);
54                                 p.Dispose ();
55                         }
56                         bmp.Save (filename, imgFmt);
57                         gr.Dispose ();
58                         bmp.Dispose ();
59                         Console.WriteLine ("Bitmap stored to " + filename);
60                 }
61
62                 static public void PaintOnBitmap (string filename, string newname, ImageFormat imgFmt) {
63                         Bitmap  bmp = new Bitmap (filename);
64                         Console.WriteLine ("Bitmap read OK {0}", bmp != null);
65                         if (bmp != null) {
66                                 Console.WriteLine ("Bitmap Pixelformat {0}", bmp.PixelFormat);
67                         }
68                         Graphics gr = Graphics.FromImage (bmp);
69                         Console.WriteLine ("Graphics created OK {0}", gr != null);
70                         if (gr != null) {
71                                 Pen p = new Pen (Color.Blue, 2);
72                                 gr.DrawLine (p, 20.0F, 20.0F, 80.0F, 80.0F);
73                                 gr.DrawRectangle (p, 20.0F, 20.0F, 60.0F, 60.0F);
74                                 p.Dispose ();
75                         }
76                         bmp.Save (newname, imgFmt);
77                         gr.Dispose ();
78                         bmp.Dispose ();
79                         Console.WriteLine ("Modified Bitmap stored to " + newname);
80                 }
81         
82                 static public void Main (string[] args) {
83                         CreateBitmap ("BmpPaint.bmp", ImageFormat.Bmp);
84                         PaintOnBitmap ("BmpPaint.bmp", "Bmp-Painted.bmp", ImageFormat.Bmp);
85                         CreateBitmap ("BmpPaint.jpg", ImageFormat.Jpeg);
86                         PaintOnBitmap ("BmpPaint.jpg", "Bmp-Painted.jpg", ImageFormat.Jpeg);
87                         CreateBitmap ("BmpPaint.png", ImageFormat.Png);
88                         PaintOnBitmap ("BmpPaint.png", "Bmp-Painted.png", ImageFormat.Png);
89                 }
90         }
91 }