Skip to content

Commit c8978b5

Browse files
committed
Save button
1 parent b587986 commit c8978b5

File tree

8 files changed

+276
-160
lines changed

8 files changed

+276
-160
lines changed

BadPaint/BadPaint.csproj

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
<ErrorReport>prompt</ErrorReport>
3333
<WarningLevel>4</WarningLevel>
3434
</PropertyGroup>
35+
<PropertyGroup />
3536
<ItemGroup>
3637
<Reference Include="System" />
3738
<Reference Include="System.Core" />
@@ -92,5 +93,11 @@
9293
<ItemGroup>
9394
<None Include="Resources\Fill.png" />
9495
</ItemGroup>
96+
<ItemGroup>
97+
<None Include="Resources\Save.png" />
98+
</ItemGroup>
99+
<ItemGroup>
100+
<None Include="Resources\Save_6530.png" />
101+
</ItemGroup>
95102
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
96103
</Project>

BadPaint/Properties/Resources.Designer.cs

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

BadPaint/Properties/Resources.resx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -118,16 +118,16 @@
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120120
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
121-
<data name="dirt01" type="System.Resources.ResXFileRef, System.Windows.Forms">
122-
<value>..\Resources\dirt01.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
123-
</data>
124-
<data name="FillTool_204_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
125-
<value>..\Resources\FillTool_204_32.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
126-
</data>
127121
<data name="carpet" type="System.Resources.ResXFileRef, System.Windows.Forms">
128122
<value>..\Resources\carpet.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
129123
</data>
124+
<data name="Save_6530" type="System.Resources.ResXFileRef, System.Windows.Forms">
125+
<value>..\Resources\Save_6530.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
126+
</data>
130127
<data name="Fill" type="System.Resources.ResXFileRef, System.Windows.Forms">
131128
<value>..\Resources\Fill.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
132129
</data>
130+
<data name="FillTool_204_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
131+
<value>..\Resources\FillTool_204_32.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
132+
</data>
133133
</root>

BadPaint/Resources/Save.png

431 Bytes
Loading

BadPaint/Resources/Save_6530.png

204 Bytes
Loading

BadPaint/frmBadPaint.Designer.cs

Lines changed: 174 additions & 147 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

BadPaint/frmBadPaint.cs

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,15 @@
77
using System.Text;
88
using System.Threading.Tasks;
99
using System.Windows.Forms;
10+
using System.Drawing.Imaging;
11+
using System.Drawing.Drawing2D;
1012

1113
namespace BadPaint
1214
{
1315
public partial class frmBadPaint : Form
1416
{
1517
public Graphics graphics;
18+
1619
public Pen pen1;
1720
public Pen pen2;
1821
public Pen currentPen;
@@ -24,12 +27,18 @@ public partial class frmBadPaint : Form
2427
public List<List<Color>> palettes;
2528
public List<PictureBox> paletteBoxes;
2629

30+
public Bitmap imageBuffer;
31+
2732
public frmBadPaint()
2833
{
2934
InitializeComponent();
3035

36+
// Setup image buffer
37+
imageBuffer = new Bitmap(pnlCanvas.Width, pnlCanvas.Height);
38+
3139
// Setup graphics
32-
graphics = pnlCanvas.CreateGraphics();
40+
// graphics = pnlCanvas.CreateGraphics();
41+
graphics = Graphics.FromImage(imageBuffer);
3342
graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
3443

3544
// Setup pens
@@ -105,6 +114,11 @@ private void pnlCanvas_MouseMove(object sender, MouseEventArgs e)
105114

106115
cursorX = e.X;
107116
cursorY = e.Y;
117+
118+
// Redraw
119+
Graphics pnlgfx = pnlCanvas.CreateGraphics();
120+
pnlgfx.DrawImage(imageBuffer, 0, 0);
121+
pnlgfx.Dispose();
108122
}
109123
}
110124

@@ -129,6 +143,11 @@ private void boxFill_MouseDown(object sender, MouseEventArgs e)
129143
// Fill with primary color
130144
graphics.FillRectangle(pen1.Brush, Rectangle.FromLTRB(0, 0, pnlCanvas.Width, pnlCanvas.Height));
131145
}
146+
147+
// Redraw
148+
Graphics pnlgfx = pnlCanvas.CreateGraphics();
149+
pnlgfx.DrawImage(imageBuffer, 0, 0);
150+
pnlgfx.Dispose();
132151
}
133152

134153
private void frmBadPaint_Load(object sender, EventArgs e)
@@ -215,6 +234,30 @@ public void loadPalette(int paletteNum)
215234
nudPaletteNum.Value = paletteNum;
216235
}
217236

237+
private void boxSave_Click(object sender, EventArgs e)
238+
{
239+
saveFileDialog = new SaveFileDialog();
240+
saveFileDialog.Filter = "PNG Image|*.png";
241+
saveFileDialog.Title = "Save an Image File";
242+
saveFileDialog.ShowDialog();
243+
244+
if (saveFileDialog.FileName != "")
245+
{
246+
pnlCanvas.DrawToBitmap(imageBuffer, new Rectangle(0, 0, pnlCanvas.Width, pnlCanvas.Height));
247+
imageBuffer.Save(saveFileDialog.FileName, ImageFormat.Png);
248+
}
249+
}
250+
251+
private void saveFileDialog_FileOk(object sender, CancelEventArgs e)
252+
{
253+
254+
}
255+
256+
private void pnlCanvas_Paint(object sender, PaintEventArgs e)
257+
{
258+
e.Graphics.DrawImage(imageBuffer, 0, 0);
259+
}
260+
218261
public void addPalettes()
219262
{
220263
// HTML

BadPaint/frmBadPaint.resx

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,45 @@
118118
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119119
</resheader>
120120
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
121+
<data name="boxFill.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
122+
<value>
123+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
124+
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA7BAAAOwQG4kWvtAAABt0lE
125+
QVQ4T7WQTStEURjHzyApK6UG4955i8X1UiYLG02x9FIW1jIfwMvInQXJNyAsRJkZOxs7GwnNpEkyxdjQ
126+
bJSXsbCRRlH4netoxqVseOrf85xznt//nPOIPw2n01np8XgWvV7vDfmOvOl2uzvU8e8BMI82NE2rw6Cf
127+
Oo9eqU/QDGYVqvXnkLfqul6LAoD3rKepfdR9aIt1xufz6ar9e9D0SEMXjTn0ImFlaIm9OXRuGEa5Qr4G
128+
h1uY5HlqiPoAqKfYQH6N813OxxRSCDbbgOTgbmk2yGHW28UGUuwPSnOFfQSbrWzmMBkmL7FO+f3+puru
129+
wXURib3ZVTqycCvEm0PhlkFa3ihvcLlc9dQraLZqINQszOixMONX5DTwvjBje9QPIhIvDJNbnxleg/25
130+
UnXtnVpJeDkMfI0uLINI9BLTIYVbBhmae+1wsYCOMDi1DCbJcv0ZGIyibTnln2DOhhwTq3mgpHoBOZpX
131+
uBDBYLCMpiRDnLebSBjlSkcWD/l3llckMMhikFD4RwDX0HjC8HYAe8mNaFzCrAPW0CQkb5Z5ak1TaCEw
132+
qQAw0RnwE0ox3BZ1/B8hxDtffKitU71fhAAAAABJRU5ErkJggg==
133+
</value>
134+
</data>
135+
<data name="boxFill.InitialImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
136+
<value>
137+
Qk02BAAAAAAAADYAAAAoAAAAEAAAABAAAAABACAAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAAAAAAAAAA
138+
AAAAAAAAAAAAAAAAAAD29vb/9vb2//b29v/29vb/9vb2//b29v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
139+
AAAAAAAAAAAAAPb29v/29vb/ycnJ/2RkZP9CQkL/QkJC/7Ozs//29vb/9vb2//b29v/29vb/9vb2/wAA
140+
AAAAAAAAAAAAAPb29v/29vb/kZGR/0JCQv9CQkL/QkJC/0JCQv9CQkL/s7Oz//b29v/29vb/nJyc//b2
141+
9v8AAAAAAAAAAAAAAAD29vb/kZGR/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv+zs7P/9vb2/0JC
142+
Qv/29vb/AAAAAAAAAAD29vb/ycnJ/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/7Oz
143+
s/9CQkL/9vb2/wAAAAAAAAAA9vb2/2RkZP9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC
144+
Qv9CQkL/QkJC//b29v8AAAAA7+/vEPb29v9CQkL/hoaG/8nJyf+Ghob/QkJC/0JCQv9CQkL/QkJC/0JC
145+
Qv9CQkL/QkJC/0JCQv/29vb/AAAAAO/v7xD29vb/QkJC/+Dg4P9CQkL/4ODg/0JCQv9CQkL/QkJC/4SD
146+
g/+amZn/QkJC/0JCQv9CQkL/9vb2/wAAAAAAAAAA9vb2/7Ozs//29vb/QkJC//b29v9CQkL/QkJC/4SD
147+
g//x7/D/WFhY/0JCQv9CQkL/ZGRk//b29v8AAAAAAAAAAPb29v/29vb/9vb2/0JCQv/29vb/QkJC/1hY
148+
WP/m5OX/8e/w/4+Ojv+Pjo7/r66v/8nJyf/29vb/AAAAAAAAAAAAAAAA9vb2//b29v9CQkL/9vb2/0JC
149+
Qv+ko6T/8e/w//Hv8P/x7/D/0M/P/5ycnP/29vb/AAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/QkJC//b2
150+
9v9CQkL/xcTF//Hv8P/x7/D/urm6/5ycnP/29vb/9vb2/wAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2/0JC
151+
Qv++vr7/s7Oz/3l4eP+amZn/hYSE/8nJyf/29vb/9vb2/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb2
152+
9v9vb2//ZGRk/76+vv/Jycn/ycnJ/9TU1P/29vb/9vb2/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
153+
AAD29vb/6+vr/29vb/9CQkL/QkJC/29vb//r6+v/9vb2/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
154+
AAAAAAAAAAAAAPb29v/29vb/9vb2//b29v/29vb/9vb2/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
155+
</value>
156+
</data>
157+
<metadata name="saveFileDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
158+
<value>32, 14</value>
159+
</metadata>
121160
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
122161
<value>
123162
AAABAAYAEBAQAAEABAAoAQAAZgAAABAQAAABAAgAaAUAAI4BAAAQEAAAAQAgAGgEAAD2BgAAICAQAAEA

0 commit comments

Comments
 (0)