本文整理汇总了C#中Bitmap.Clone方法的典型用法代码示例。如果您正苦于以下问题:C# Bitmap.Clone方法的具体用法?C# Bitmap.Clone怎么用?C# Bitmap.Clone使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Bitmap
的用法示例。
在下文中一共展示了Bitmap.Clone方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CropImage
//The method takes two objects - the image to crop (System.Drawing.Image) and the rectangle to
//crop out (System.Drawing.Rectangle).
//The next thing done is to create a Bitmap (System.Drawing.Bitmap) of the image.
// The only thing left is to crop the image.
//This is done by cloning the original image but only taking a rectangle of the original.
public static Image CropImage(Image img, Rectangle cropArea)
{
Bitmap bmpImage = new Bitmap(img);
Bitmap bmpCrop = bmpImage.Clone(cropArea,
bmpImage.PixelFormat);
return (Image)(bmpCrop);
}
示例2: FromScreen
/// <summary>Creates a new <see cref="T:System.Drawing.Analysis.SlowBitmapPixelProvider"/> instance using a screenshot of a spefic rectangle on the screen.</summary>
/// <param name="rectangle">The rectangle</param>
/// <param name="operation">The <see cref="T:System.Drawing.CopyPixelOperation"/> to use.</param>
/// <returns>A new <see cref="T:System.Drawing.Analysis.SlowBitmapPixelProvider"/> instance.</returns>
public static SlowBitmapPixelProvider FromScreen(Rectangle rectangle, CopyPixelOperation operation)
{
if (rectangle.Width < 1)
throw new ArgumentException("The width must not be 0 or less.");
if (rectangle.Height < 1)
throw new ArgumentException("The height must not be 0 or less.");
using (var bmp = new Bitmap(rectangle.Width, rectangle.Height))
{
using (var g = Graphics.FromImage(bmp))
{
g.Clear(GdiConstants.CopyFromScreenBugFixColor.ToDrawingColor());
g.CopyFromScreen(rectangle.X, rectangle.Y, 0, 0, bmp.Size, operation);
return new SlowBitmapPixelProvider(bmp.Clone() as Bitmap, true);
}
}
}
示例3: GetResizedImage
public static Image GetResizedImage(Image img, Rectangle rect)
{
Bitmap b = new Bitmap(rect.Width, rect.Height);
Graphics g = Graphics.FromImage((Image)b);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(img, 0, 0, rect.Width, rect.Height);
g.Dispose();
try
{
return (Image)b.Clone();
}
finally
{
b.Dispose();
b = null;
g = null;
}
}
示例4: DistortImage
/// <summary>Distorts the image.</summary>
/// <param name="b">The image to be transformed.</param>
/// <param name="distortion">An amount of distortion.</param>
private static void DistortImage(Bitmap b, double distortion)
{
int width = b.Width, height = b.Height;
// Copy the image so that we're always using the original for source color
using (Bitmap copy = (Bitmap)b.Clone())
{
// Iterate over every pixel
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
// Adds a simple wave
int newX = (int)(x + (distortion * Math.Sin(Math.PI * y / 64.0)));
int newY = (int)(y + (distortion * Math.Cos(Math.PI * x / 64.0)));
if (newX < 0 || newX >= width) newX = 0;
if (newY < 0 || newY >= height) newY = 0;
b.SetPixel(x, y, copy.GetPixel(newX, newY));
}
}
}
}
示例5: GenerateImage
public virtual Image GenerateImage()
{
// Gravatar
string gravatarUrl = string.Format("http://www.gravatar.com/avatar/{0}?s={1}&d=identicon&=PG", Data.DisplayHash, TemplateOptions.GravatarSize);
Image gravatarImage = DownloadImage(gravatarUrl);
//calculate the size first
int faviconSize = 16;
int minWidth = TemplateOptions.BorderWidth + TemplateOptions.Spacing + TemplateOptions.GravatarSize +
((TemplateOptions.Spacing + faviconSize) * Math.Min(Data.Sites.Count, Utility.MaxSites)) + TemplateOptions.Spacing + TemplateOptions.BorderWidth;
int actualWidth = 0;
int topLine = TemplateOptions.BorderWidth + TemplateOptions.Spacing;
int middleLine = TemplateOptions.GravatarSize / 3 + topLine;
int bottomLine = TemplateOptions.GravatarSize / 3 + middleLine;
int leftCol = topLine;
int rightCol = leftCol + TemplateOptions.GravatarSize + TemplateOptions.Spacing;
int height = TemplateOptions.BorderWidth + TemplateOptions.Spacing + TemplateOptions.GravatarSize + TemplateOptions.Spacing + TemplateOptions.BorderWidth;
var bitmap = new Bitmap(1000, 200);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
graphics.CompositingMode = CompositingMode.SourceOver;
//draw border
Brush brush = new SolidBrush(TemplateOptions.BackgroundColor);
graphics.FillRectangle(brush, 1, 1, 1000, height);
//draw gravatar
graphics.DrawImage(gravatarImage, topLine, topLine);
//draw username
Font topLineFont = new Font(TemplateOptions.FontFamily, TemplateOptions.TopLineSize, FontStyle.Bold);
Brush usernameBrush = new SolidBrush(TemplateOptions.NameColor);
graphics.DrawString(Data.DisplayName, topLineFont, usernameBrush, rightCol, topLine);
int usernameWidth = (int)graphics.MeasureString(Data.DisplayName, topLineFont).Width;
//draw rep
string rep = Utility.FormatTotalRep(Data.TotalRep);
int repWidth = (int)graphics.MeasureString(rep, topLineFont).Width;
int neededWidth = rightCol + usernameWidth + TemplateOptions.Spacing + repWidth + TemplateOptions.Spacing + TemplateOptions.BorderWidth;
actualWidth = Math.Max(neededWidth, minWidth);
Brush repBrush = new SolidBrush(TemplateOptions.RepColor);
graphics.DrawString(rep, topLineFont, repBrush, actualWidth - TemplateOptions.Spacing - repWidth, topLine);
//draw mod and badges
int x = rightCol;
Font modBadgeFont = new Font(TemplateOptions.FontFamily, TemplateOptions.MiddleLineSize, FontStyle.Regular, GraphicsUnit.Point, Convert.ToByte(2));
if (Data.ModCount > 0) {
Brush modBrush = new SolidBrush(TemplateOptions.ModColor);
string modString = "♦" + Data.ModCount;
graphics.DrawString(modString, modBadgeFont, modBrush, x, middleLine);
x += (int)graphics.MeasureString(modString, modBadgeFont).Width;
}
if (Data.TotalBadges.Gold > 0) {
Brush goldBrush = new SolidBrush(TemplateOptions.GoldColor);
string goldString = "●" + Data.TotalBadges.Gold.ToString();
graphics.DrawString(goldString, modBadgeFont, goldBrush, x, middleLine);
x += (int)graphics.MeasureString(goldString, modBadgeFont).Width;
}
if (Data.TotalBadges.Silver > 0) {
Brush silverBrush = new SolidBrush(TemplateOptions.SilverColor);
string silverString = "●" + Data.TotalBadges.Silver.ToString();
graphics.DrawString(silverString, modBadgeFont, silverBrush, x, middleLine);
x += (int)graphics.MeasureString(silverString, modBadgeFont).Width;
}
if (Data.TotalBadges.Bronze > 0) {
Brush bronzeBrush = new SolidBrush(TemplateOptions.BronzeColor);
string bronzeString = "●" + Data.TotalBadges.Bronze.ToString();
graphics.DrawString(bronzeString, modBadgeFont, bronzeBrush, x, middleLine);
x += (int)graphics.MeasureString(bronzeString, modBadgeFont).Width;
}
//draw favicons
x = TemplateOptions.BorderWidth + TemplateOptions.Spacing + TemplateOptions.GravatarSize + TemplateOptions.Spacing;
// Favicons
List<Image> favicons = new List<Image>();
foreach (var site in Data.Sites.Take(Utility.MaxSites).ToList()) {
var favicon = GetFavicon(site.SiteName);
favicons.Add(favicon);
graphics.DrawImage(favicon, x, bottomLine);
x += favicon.Width + TemplateOptions.Spacing;
}
graphics.DrawRectangle(new Pen(TemplateOptions.BorderColor, TemplateOptions.BorderWidth), TemplateOptions.BorderWidth, TemplateOptions.BorderWidth, actualWidth - 2 * TemplateOptions.BorderWidth, height - 2 * TemplateOptions.BorderWidth);
bitmap = bitmap.Clone(new Rectangle(0, 0, actualWidth, height), PixelFormat.DontCare);
gravatarImage.Dispose();
foreach (var favicon in favicons) {
favicon.Dispose();
}
return bitmap;
}
示例6: FromFile
public static Bitmap FromFile(string location)
{
Bitmap ans;
using (Bitmap bmp = new Bitmap(location))
{
ans = bmp.Clone(new Rectangle(0, 0, bmp.Width, bmp.Height), PixelFormat.Format32bppArgb);
}
return ans;
}
示例7: Main
static void Main(string[] args)
{
if(args.Length < 1 || args[0].ToLower() != "/s") return;
string wallpaper, backColor;
int wallStyle;
bool isTiled;
try {
wallpaper = (string)Registry.GetValue("HKEY_CURRENT_USER\\Control Panel\\Desktop\\", "Wallpaper", "");
backColor = (string)Registry.GetValue("HKEY_CURRENT_USER\\Control Panel\\Colors\\", "Background", "");
wallStyle = int.Parse((string)Registry.GetValue("HKEY_CURRENT_USER\\Control Panel\\Desktop\\", "WallpaperStyle", ""));
isTiled = Convert.ToBoolean(int.Parse((string)Registry.GetValue("HKEY_CURRENT_USER\\Control Panel\\Desktop\\", "TileWallpaper", "")));
} catch {
LogError("Can not read registry values.");
return;
}
byte r = 0, g = 0, b = 0;
try {
var pos = 0;
var ind = backColor.IndexOf(' ', pos);
byte.TryParse(backColor.Substring(pos, ind - pos), out r);
pos = ind + 1;
ind = backColor.IndexOf(' ', pos);
byte.TryParse(backColor.Substring(pos, ind - pos), out g);
pos = ind + 1;
byte.TryParse(backColor.Substring(pos), out b);
} catch { }
Wnd = new Form();
Wnd.Text = "DesktopFadeScreensaver";
Wnd.FormBorderStyle = FormBorderStyle.None;
Wnd.ShowInTaskbar = false;
Wnd.TopLevel = true;
Wnd.TopMost = true;
Wnd.WindowState = FormWindowState.Maximized;
Wnd.Opacity = 0.0;
Wnd.BackColor = Color.FromArgb(r, g, b);
Img = new PictureBox();
Img.Dock = DockStyle.Fill;
Wnd.Controls.Add(Img);
if(File.Exists(wallpaper)) {
Bitmap bmp = null;
try {
bmp = new Bitmap(wallpaper);
} catch {
LogError("Can not open wallpaper file.");
return;
}
if(wallStyle == 0) {
if(isTiled) {
Img.BackgroundImage = bmp;
Img.BackgroundImageLayout = ImageLayout.Tile;
} else {
Img.Image = bmp;
Img.SizeMode = PictureBoxSizeMode.CenterImage;
}
} else if(wallStyle == 2) {
Img.BackgroundImage = bmp;
Img.BackgroundImageLayout = ImageLayout.Stretch;
} else if(wallStyle == 6) {
Img.BackgroundImage = bmp;
Img.BackgroundImageLayout = ImageLayout.Zoom;
} else if(wallStyle == 10 || wallStyle == 22) {
double dx = 0, dy = 0;
double coef = (double)bmp.Width / bmp.Height > (double)Screen.PrimaryScreen.Bounds.Width / Screen.PrimaryScreen.Bounds.Height ? (double)bmp.Height / Screen.PrimaryScreen.Bounds.Height : (double)bmp.Width / Screen.PrimaryScreen.Bounds.Width;
dx = Math.Max(0, bmp.Width - Screen.PrimaryScreen.Bounds.Width * coef);
dy = Math.Max(0, bmp.Height - Screen.PrimaryScreen.Bounds.Height * coef);
Img.BackgroundImage = bmp.Clone(new RectangleF((float)(dx / 2), (float)(dy / (wallStyle == 10 ? 3 : 2)), (float)(bmp.Width - dx), (float)(bmp.Height - dy)), System.Drawing.Imaging.PixelFormat.Format32bppArgb);
Img.BackgroundImageLayout = ImageLayout.Stretch;
bmp.Dispose();
}
}
Wnd.Load += Wnd_Load;
Application.Run(Wnd);
}
示例8: OnPaint
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
base.OnPaint(e);
Bitmap B = new Bitmap(Width, Height);
Graphics G = Graphics.FromImage(B);
G.Clear(Color.Transparent);
EnabledStringColor = ColorTranslator.FromHtml(fontColor);
EnabledFocusedColor = ColorTranslator.FromHtml(focusColor);
LollipopTB.TextAlign = TextAlignment;
LollipopTB.ForeColor = IsEnabled ? EnabledStringColor : DisabledStringColor;
LollipopTB.UseSystemPasswordChar = UseSystemPasswordChar;
G.DrawLine(new Pen(new SolidBrush(IsEnabled ? EnabledUnFocusedColor : DisabledUnFocusedColor)), new Point(0, Height - 2), new Point(Width, Height - 2));
if (IsEnabled)
{ G.FillRectangle(new SolidBrush(EnabledFocusedColor), PointAnimation, (float)Height - 3, SizeAnimation, 2); }
G.SmoothingMode = SmoothingMode.AntiAlias;
G.FillEllipse(new SolidBrush(IsEnabled ? EnabledInPutColor : DisabledInputColor), Width - 5, 9, 4, 4);
G.FillEllipse(new SolidBrush(IsEnabled ? EnabledInPutColor : DisabledInputColor), Width - 11, 9, 4, 4);
G.FillEllipse(new SolidBrush(IsEnabled ? EnabledInPutColor : DisabledInputColor), Width - 17, 9, 4, 4);
e.Graphics.DrawImage((Image)(B.Clone()), 0, 0);
G.Dispose();
B.Dispose();
}
示例9: OnPaint
protected override void OnPaint(PaintEventArgs e)
{
Bitmap B = new Bitmap(Width, Height);
Graphics G = Graphics.FromImage(B);
base.OnPaint(e);
G.Clear(BackColor);
G.SmoothingMode = SmoothingMode.HighQuality;
LinearGradientBrush mlgb = null;
Font mf = new Font("Marlett", 9);
SolidBrush mfb = new SolidBrush(Color.FromArgb(174, 195, 30));
Pen P1 = new Pen(Color.FromArgb(21, 21, 21), 1);
Color C1 = Color.FromArgb(66, 67, 70);
Color C2 = Color.FromArgb(43, 44, 48);
GraphicsPath GP1 = Draw.RoundRect(MinBtn, 4);
GraphicsPath GP2 = Draw.RoundRect(MaxBtn, 4);
switch (State)
{
case MouseState.None:
mlgb = new LinearGradientBrush(MinBtn, C1, C2, 90);
G.FillPath(mlgb, GP1);
G.DrawPath(P1, GP1);
G.DrawString("0", mf, mfb, 4, 4);
G.FillPath(mlgb, GP2);
G.DrawPath(P1, GP2);
G.DrawString("r", mf, mfb, 28, 4);
break;
case MouseState.Over:
if (x > 0 && x < 20)
{
mlgb = new LinearGradientBrush(MinBtn, Color.FromArgb(100, C1), Color.FromArgb(100, C2), 90);
G.FillPath(mlgb, GP1);
G.DrawPath(P1, GP1);
G.DrawString("0", mf, mfb, 4, 4);
mlgb = new LinearGradientBrush(MaxBtn, C1, C2, 90);
G.FillPath(mlgb, Draw.RoundRect(MaxBtn, 4));
G.DrawPath(P1, GP2);
G.DrawString("r", mf, mfb, 4, 4);
}
else if (x > 25 && x < 45)
{
mlgb = new LinearGradientBrush(MinBtn, C1, C2, 90);
G.FillPath(mlgb, GP1);
G.DrawPath(P1, GP1);
G.DrawString("0", mf, mfb, 4, 4);
mlgb = new LinearGradientBrush(MaxBtn, Color.FromArgb(100, C1), Color.FromArgb(100, C2), 90);
G.FillPath(mlgb, GP2);
G.DrawPath(P1, GP2);
G.DrawString("r", mf, mfb, 28, 4);
}
else
{
mlgb = new LinearGradientBrush(MinBtn, C1, C2, 90);
G.FillPath(mlgb, GP1);
G.DrawPath(P1, GP1);
G.DrawString("0", mf, mfb, 4, 4);
LinearGradientBrush lgb = new LinearGradientBrush(MaxBtn, C1, C2, 90);
G.FillPath(lgb, GP2);
G.DrawPath(P1, GP2);
G.DrawString("r", mf, mfb, 28, 4);
}
break;
case MouseState.Down:
mlgb = new LinearGradientBrush(MinBtn, C1, C2, 90);
G.FillPath(mlgb, GP1);
G.DrawPath(P1, GP1);
G.DrawString("0", mf, mfb, 4, 4);
mlgb = new LinearGradientBrush(MaxBtn, C1, C2, 90);
G.FillPath(mlgb, GP2);
G.DrawPath(P1, GP2);
G.DrawString("r", mf, mfb, 28, 4);
break;
default:
mlgb = new LinearGradientBrush(MinBtn, C1, C2, 90);
G.FillPath(mlgb, GP1);
G.DrawPath(P1, GP1);
G.DrawString("0", mf, mfb, 4, 4);
mlgb = new LinearGradientBrush(MaxBtn, C1, C2, 90);
G.FillPath(mlgb, GP2);
G.DrawPath(P1, GP2);
G.DrawString("r", mf, mfb, 28, 4);
break;
}
e.Graphics.DrawImage((Image)B.Clone(), 0, 0);
G.Dispose();
B.Dispose();
}
示例10: cropImage
public static Image cropImage(Image img, Rectangle area)
{
var bmp = new Bitmap(img);
Bitmap bmpCrop = bmp.Clone(area, PixelFormat.Format16bppRgb555);
return (Image)bmpCrop;
}
示例11: generateTicket
public static Bitmap generateTicket(string ticketType, string special, string destination, string price, string person, string printerType)
{
DateTime today = DateTime.Now;
string date = today.ToString("dd.MM.yyyy");
if (special == "Kein Zusatzangebot")
{
special = "";
}
else
{
}
if (printerType == TVMSettings.mobilePrinter)
{
//Orte der verschiedenen Textboxen auf dem Ticket:
PointF logoLocation = new PointF(110, 10);
Point StartLine1 = new Point(20, 60);
Point EndLine1 = new Point(480, 60);
PointF ticketTypeLocation = new PointF(20, 75);
PointF dateLocation = new PointF(320, 75);
PointF personLocation = new PointF(20, 115);
PointF destinationLocation = new PointF(20, 220);
PointF specialLocation = new PointF(250, 300);
Point StartLine2 = new Point(20, 350);
Point EndLine2 = new Point(480, 350);
PointF totalLocation = new PointF(20, 385);
PointF priceLocation = new PointF(320, 385);
Bitmap tempBmp = new Bitmap(560, 450);
//auf das neu erstellte Bitmap draufzeichnen:
using (Graphics g = Graphics.FromImage(tempBmp))
{
g.Clear(Color.White);
using (Font arialFont = new Font("Arial", 30, FontStyle.Bold))
{
g.DrawString("Cloud4all TVM", arialFont, Brushes.Black, logoLocation);
}
g.DrawLine(new Pen(Brushes.Black, 5), StartLine1, EndLine1);
using (Font arialFont = new Font("Arial", 20, FontStyle.Bold))
{
g.DrawString(ticketType, arialFont, Brushes.Black, ticketTypeLocation);
g.DrawString(date, arialFont, Brushes.Black, dateLocation);
}
using (Font arialFont = new Font("Arial", 20, FontStyle.Regular))
{
g.DrawString(person, arialFont, Brushes.Black, personLocation);
g.DrawString(special, arialFont, Brushes.Black, specialLocation);
}
using (Font arialFont = new Font("Arial", 33, FontStyle.Bold))
{
g.DrawString(destination, arialFont, Brushes.Black, destinationLocation);
}
g.DrawLine(new Pen(Brushes.Black, 5), StartLine2, EndLine2);
using (Font arialFont = new Font("Arial", 25, FontStyle.Regular))
{
g.DrawString("Summe:", arialFont, Brushes.Black, totalLocation);
g.DrawString(price, arialFont, Brushes.Black, priceLocation);
}
}
//Farbtiefe auf 1 reduzieren:
Bitmap ticket = tempBmp.Clone(new Rectangle(0, 0, tempBmp.Width, tempBmp.Height), PixelFormat.Format1bppIndexed);
return ticket;
}
else
{
//Orte der verschiedenen Textboxen auf dem Ticket:
PointF logoLocation = new PointF(260, 10);
Point StartLine1 = new Point(100, 90);
Point EndLine1 = new Point(860, 90);
PointF ticketTypeLocation = new PointF(120, 110);
PointF dateLocation = new PointF(605, 110);
PointF personLocation = new PointF(120, 160);
PointF destinationLocation = new PointF(120, 270);
PointF specialLocation = new PointF(490, 430);
Point StartLine2 = new Point(100, 480);
Point EndLine2 = new Point(860, 480);
PointF totalLocation = new PointF(120, 535);
PointF priceLocation = new PointF(605, 535);
Bitmap tempBmp = new Bitmap(1040, 630);
//auf das neu erstellte Bitmap draufzeichnen:
using (Graphics g = Graphics.FromImage(tempBmp))
{
//.........这里部分代码省略.........
示例12: generateStreifenticket
//.........这里部分代码省略.........
using (Font arialFont = new Font("Arial", 20, FontStyle.Regular))
{
g.DrawString(person, arialFont, Brushes.Black, personLocation);
g.DrawString(special, arialFont, Brushes.Black, specialLocation);
}
using (Font arialFont = new Font("Arial", 30, FontStyle.Bold))
{
g.DrawString("1", arialFont, Brushes.Black, OneLocation);
g.DrawString("2", arialFont, Brushes.Black, TwoLocation);
g.DrawString("3", arialFont, Brushes.Black, ThreeLocation);
g.DrawString("4", arialFont, Brushes.Black, FourLocation);
g.DrawString("5", arialFont, Brushes.Black, FiveLocation);
g.DrawString("6", arialFont, Brushes.Black, SixLocation);
g.DrawString("7", arialFont, Brushes.Black, SevenLocation);
g.DrawString("8", arialFont, Brushes.Black, EightLocation);
}
using (Font arialFont = new Font("Arial", 25, FontStyle.Regular))
{
g.DrawString("Summe:", arialFont, Brushes.Black, totalLocation);
g.DrawString(price, arialFont, Brushes.Black, priceLocation);
}
using (Font arialFont = new Font("Arial", 15, FontStyle.Bold))
{
g.DrawString("Bitte stempeln Sie pro Zone einen Streifen.", arialFont, Brushes.Black, instructionLocation1);
g.DrawString("Ab dem Zeitpunkt des Stempelns für 2 Stunden gültig.", arialFont, Brushes.Black, instructionLocation2);
}
}
//Farbtiefe auf 1 reduzieren:
Bitmap ticket = tempBmp.Clone(new Rectangle(0, 0, tempBmp.Width, tempBmp.Height), PixelFormat.Format1bppIndexed);
return ticket;
}
else
{
PointF logoLocation = new PointF(260, 10);
Point StartLine = new Point(100, 90);
Point EndLine = new Point(860, 90);
PointF ticketTypeLocation = new PointF(120, 110);
PointF dateLocation = new PointF(605, 110);
PointF personLocation = new PointF(120, 160);
PointF specialLocation = new PointF(490, 220);
int startLines = 280;
int n = 140;
Point StartLine1 = new Point(0, startLines);
Point EndLine1 = new Point(1040, startLines);
PointF EightLocation = new PointF(50, startLines + 40);
Point StartLine2 = new Point(0, startLines + n);
Point EndLine2 = new Point(1040, startLines + n);
PointF SevenLocation = new PointF(50, startLines + n + 40);
Point StartLine3 = new Point(0, startLines + 2 * n);
Point EndLine3 = new Point(1040, startLines + 2 * n);
PointF SixLocation = new PointF(50, startLines + 2 * n + 40);
Point StartLine4 = new Point(0, startLines + 3 * n);
Point EndLine4 = new Point(1040, startLines + 3 * n);
PointF FiveLocation = new PointF(50, startLines + 3 * n + 40);
示例13: OnPaint
//.........这里部分代码省略.........
{
}
G.Clear(Color.White);
for (int i = 0; i <= TabCount - 1; i++)
{
Rectangle x2 = new Rectangle(new Point(GetTabRect(i).Location.X - 2, GetTabRect(i).Location.Y - 2), new Size(GetTabRect(i).Width + 3, GetTabRect(i).Height - 1));
Rectangle textrectangle = new Rectangle(x2.Location.X + 20, x2.Location.Y, x2.Width - 20, x2.Height);
if (i == SelectedIndex)
{
G.FillRectangle(new SolidBrush(C1), new Rectangle(x2.Location, new Size(9, x2.Height)));
if (ImageList != null)
{
try
{
if (ImageList.Images[TabPages[i].ImageIndex] != null)
{
G.DrawImage(ImageList.Images[TabPages[i].ImageIndex], new Point(textrectangle.Location.X + 8, textrectangle.Location.Y + 6));
G.DrawString(" " + TabPages[i].Text, Font, Brushes.Black, textrectangle, new StringFormat
{
LineAlignment = StringAlignment.Center,
Alignment = StringAlignment.Near
});
}
else
{
G.DrawString(TabPages[i].Text, Font, Brushes.Black, textrectangle, new StringFormat
{
LineAlignment = StringAlignment.Center,
Alignment = StringAlignment.Near
});
}
}
catch
{
G.DrawString(TabPages[i].Text, Font, Brushes.Black, textrectangle, new StringFormat
{
LineAlignment = StringAlignment.Center,
Alignment = StringAlignment.Near
});
}
}
else
{
G.DrawString(TabPages[i].Text, Font, Brushes.Black, textrectangle, new StringFormat
{
LineAlignment = StringAlignment.Center,
Alignment = StringAlignment.Near
});
}
}
else
{
if (ImageList != null)
{
try
{
if (ImageList.Images[TabPages[i].ImageIndex] != null)
{
G.DrawImage(ImageList.Images[TabPages[i].ImageIndex], new Point(textrectangle.Location.X + 8, textrectangle.Location.Y + 6));
G.DrawString(" " + TabPages[i].Text, Font, Brushes.DimGray, textrectangle, new StringFormat
{
LineAlignment = StringAlignment.Center,
Alignment = StringAlignment.Near
});
}
else
{
G.DrawString(TabPages[i].Text, Font, Brushes.DimGray, textrectangle, new StringFormat
{
LineAlignment = StringAlignment.Center,
Alignment = StringAlignment.Near
});
}
}
catch
{
G.DrawString(TabPages[i].Text, Font, Brushes.DimGray, textrectangle, new StringFormat
{
LineAlignment = StringAlignment.Center,
Alignment = StringAlignment.Near
});
}
}
else
{
G.DrawString(TabPages[i].Text, Font, Brushes.DimGray, textrectangle, new StringFormat
{
LineAlignment = StringAlignment.Center,
Alignment = StringAlignment.Near
});
}
}
}
e.Graphics.DrawImage((Image)B.Clone(), 0, 0);
G.Dispose();
B.Dispose();
}
示例14: CropImageToCircle
private static Bitmap CropImageToCircle(Bitmap SourceImage)
{
int circleDiameter = SourceImage.Width;
int circleUpperLeftX = 0;
int circleUpperLeftY = 0;
//Load our source image
//Create a rectangle that crops a square of our image
Rectangle CropRect = new Rectangle(circleUpperLeftX, circleUpperLeftY, circleDiameter, circleDiameter);
//Crop the image to that square
using (Bitmap CroppedImage = SourceImage.Clone(CropRect, SourceImage.PixelFormat))
{
//Create a texturebrush to draw our circle with
using (TextureBrush TB = new TextureBrush(CroppedImage))
{
//Create our output image
Bitmap FinalImage = new Bitmap(circleDiameter, circleDiameter);
//Create a graphics object to draw with
using (Graphics myGraphic = FromImage(FinalImage))
{
myGraphic.FillEllipse(TB, 0, 0, circleDiameter, circleDiameter);
return FinalImage;
}
}
}
}
示例15: CropBitmap
public Bitmap CropBitmap(Bitmap bitmap, Rectangle rect)
{
var cropped = bitmap.Clone(rect, bitmap.PixelFormat);
return cropped;
}