📄 showbitmap.cs
字号:
}
else
{
// Copy bitmap using transparency.
Rectangle rectDest = new Rectangle(e.X, e.Y, 100, 100);
ImageAttributes imgatt = new ImageAttributes();
imgatt.SetColorKey(Color.LightGray, Color.LightGray);
g.DrawImage(bmpNew, rectDest, 0, 0, 99, 99, GraphicsUnit.Pixel, imgatt);
}
// Clean up when we are done.
g.Dispose();
gbmp.Dispose();
bmpNew.Dispose();
}
private void FormMain_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
float sinX = 10.0F;
float sinY = 10.0F;
SizeF szfText = g.MeasureString("X", Font);
float cyLine = szfText.Height;
Brush brText = new SolidBrush(SystemColors.WindowText);
if (bmpDraw != null)
{
if (bResource)
{
g.DrawString("Resource: " + strResName,
Font, brText, sinX, sinY);
}
else
{
g.DrawString("File: " + dlgFileOpen.FileName,
Font, brText, sinX, sinY);
}
sinY += cyLine;
g.DrawString("Bitmap Height = " + bmpDraw.Height,
Font, brText, sinX, sinY);
sinY += cyLine;
g.DrawString("Bitmap Width = " + bmpDraw.Width,
Font, brText, sinX, sinY);
sinY += cyLine;
sinY += cyLine;
if (mitemScale100.Checked)
{
g.DrawImage(bmpDraw, (int)sinX, (int)sinY);
}
else
{
Rectangle rectSrc = new Rectangle(0, 0,
bmpDraw.Width, bmpDraw.Height);
int xScaled = 0;
int yScaled = 0;
if (mitemScale50.Checked)
{
xScaled = bmpDraw.Width / 2;
yScaled = bmpDraw.Height / 2;
}
else if (mitemScale200.Checked)
{
xScaled = bmpDraw.Width * 2;
yScaled = bmpDraw.Height * 2;
}
else if (mitemScale400.Checked)
{
xScaled = bmpDraw.Width * 4;
yScaled = bmpDraw.Height * 4;
}
Rectangle rectDest = new Rectangle((int)sinX,
(int)sinY, xScaled, yScaled);
g.DrawImage(bmpDraw, rectDest, rectSrc,
GraphicsUnit.Pixel);
}
}
else
{
g.DrawString("File: None", Font, brText, sinX, sinY);
}
}
private void
mitemFileOpen_Click(object sender, EventArgs e)
{
dlgFileOpen.Filter = "Bitmap (*.bmp)|*.bmp|" +
"Picture (*.jpg)|*.jpg|" +
"PNG Files (*.png)|*.png|" +
"TIF Files (*.tif)|*.tif|" +
"GIF Files (*.gif)|*.gif |" +
"All Files (*.*)|*.*";
if (dlgFileOpen.ShowDialog() == DialogResult.OK)
{
Bitmap bmpNew = null;
try
{
bmpNew = new Bitmap(dlgFileOpen.FileName);
bResource = false;
}
catch
{
MessageBox.Show("Cannot create bitmap from " +
"File: " + dlgFileOpen.FileName);
return;
}
DisposeBitmap (ref bmpDraw);
bmpDraw = bmpNew;
Invalidate();
}
}
private void
mitemScale_Click(object sender, EventArgs e)
{
// Clear checkmark on related items.
mitemScale50.Checked = false;
mitemScale100.Checked = false;
mitemScale200.Checked = false;
mitemScale400.Checked = false;
// Set checkmark on selected menu item.
((MenuItem)sender).Checked = true;
// Request paint to redraw bitmap.
Invalidate();
}
private void
mitemResourceCup_Click(object sender, EventArgs e)
{
DisposeBitmap(ref bmpDraw);
bmpDraw = LoadBitmapResource("CUP.BMP");
Invalidate();
}
private void
mitemResourceBell_Click(object sender, EventArgs e)
{
DisposeBitmap(ref bmpDraw);
bmpDraw = LoadBitmapResource("BELL.BMP");
Invalidate();
}
private void
mitemResourceSpade_Click(object sender, EventArgs e)
{
DisposeBitmap(ref bmpDraw);
bmpDraw = LoadBitmapResource("SPADE.BMP");
Invalidate();
}
private void
mitemResourceHeart_Click(object sender, EventArgs e)
{
DisposeBitmap(ref bmpDraw);
bmpDraw = LoadBitmapResource("HEART.BMP");
Invalidate();
}
private void
mitemResourceDiamond_Click(object sender, EventArgs e)
{
DisposeBitmap(ref bmpDraw);
bmpDraw = LoadBitmapResource("DIAMOND.BMP");
Invalidate();
}
private void
mitemResourceClub_Click(object sender, EventArgs e)
{
DisposeBitmap(ref bmpDraw);
bmpDraw = LoadBitmapResource("CLUB.BMP");
Invalidate();
}
private Bitmap LoadBitmapResource(string strName)
{
Assembly assembly = Assembly.GetExecutingAssembly();
string strRes = "ShowBitmap." + strName;
Stream stream = assembly.GetManifestResourceStream(strRes);
Bitmap bmp = null;
try
{
bmp = new Bitmap(stream);
strResName = strRes;
bResource = true;
}
catch { }
stream.Close();
return bmp;
}
private void DisposeBitmap(ref Bitmap bmp)
{
if (bmp != null)
{
bmp.Dispose();
}
bmp = null;
}
// Simplest possible bitmap: create a bitmap, clear
// bitmap background, draw bitmap to display screen.
private void
CreateAndDraw(int x, int y)
{
// Create bitmap and graphics object for bitmap.
Bitmap bmpNew = new Bitmap(100,100);
Graphics gbmp = Graphics.FromImage(bmpNew);
// Clear bitmap background.
gbmp.Clear(Color.LightGray);
// Get graphics object for form.
Graphics g = CreateGraphics();
// Copy bitmap to window at (x,y) location
g.DrawImage(bmpNew, x, y);
// Clean up when we are done.
g.Dispose();
gbmp.Dispose();
bmpNew.Dispose();
}
} // class
} // namespace
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -