本文整理汇总了C#中System.Drawing.Bitmap.GetBitmapData方法的典型用法代码示例。如果您正苦于以下问题:C# Bitmap.GetBitmapData方法的具体用法?C# Bitmap.GetBitmapData怎么用?C# Bitmap.GetBitmapData使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Drawing.Bitmap
的用法示例。
在下文中一共展示了Bitmap.GetBitmapData方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Get_PANEL_Image
protected override void Get_PANEL_Image(out Bitmap bac)
{
base.Get_PANEL_Image(out bac);
BitmapData data_bac = bac.GetBitmapData();
Display_All_Numbers(data_bac);
Display_Gas_Gauge(data_bac);
bac.UnlockBits(data_bac);
}
示例2: Block
Block(string name, bool drillable, int price, double hardness, Normal_Distribute distribute, int x = -1, int y = -1)
{
NAME = name;
PRICE = price;
DRILLABLE = drillable;
HARDNESS = hardness;
DISTRIBUTE = distribute;
BMP = BITMAP.FromFile(@"Picture\Block\" + NAME + ".png");
BMP_DATA = BMP.GetBitmapData();
if (BMP.Size != Size) { throw new ArgumentException("Size of Block's Image must be " + Size.ToString()); }
X = x;
Y = y;
}
示例3: ProduceGearImage
void ProduceGearImage(out Bitmap bac)
{
bac = new Bitmap(IMAGES["GearO"]);
Bitmap bmp = IMAGES["GearB"];
int h1=bac.Height;
bac = bac.Rotate(GEAR_ANGLE);
bac = bac.TakeCenter(bmp.Size);
bac.DrawOpaque(bmp);
int h2=bac.Height;
int h = (bmp.Height * Health.RATIO - 0.5 * (h1 - h2)).Round();
if (h > 0)
{
BitmapData data_bac = bac.GetBitmapData(new Rectangle(0, Math.Max(0, bac.Height - h), bac.Width, Math.Min(bac.Height, h)));
data_bac.DrawGray(COLOR.FromRToG(Health.RATIO));
bac.UnlockBits(data_bac);
}
}
示例4: Get_Image
static Bitmap Get_Image(out Bitmap bac)
{
bac = new Bitmap(EMPTY);
BitmapData data_bac = bac.GetBitmapData();
if (VALUE >= CRITICAL_SHRINK * MAXIMUM)
{
using (Bitmap bmp1 = new Bitmap(FUEL))
{
double ratio = (VALUE / MAXIMUM - CRITICAL_SHRINK) / (1.0 - CRITICAL_SHRINK);
int y = (int)Math.Round(DOWN_Y * (1.0 - ratio));
bmp1.Paste(TOP_SURFACE, new Point(0, y), ImagePasteMode.Transparent);
using (Bitmap bmp2 = bmp1.SubBitmap(new Rectangle(0, y, bmp1.Width, bmp1.Height - y)).Transparentize(Color.FromArgb(255, 255, 255)))
{
data_bac.Paste(bmp2, new Point(1, 1 + y), ImagePasteMode.Transparent);
}
}
data_bac.Paste(FRAME, new Point(0, 0), ImagePasteMode.Transparent);
}
else
{
Bitmap bmp = TOP_SURFACE.Resize(VALUE / MAXIMUM / CRITICAL_SHRINK);
if (bmp != null)
{
bmp = bmp.Transparentize(Color.FromArgb(255, 255, 255));
data_bac.Paste(bmp, new PointD(1, 1 + DOWN_Y) + TOP_SURFACE.Half() - bmp.Half(), ImagePasteMode.Transparent);
//bmp.Dispose();
}
data_bac.Paste(FRAME, new Point(0, 0), ImagePasteMode.Transparent);
}
data_bac.Add_R_Minus_GB((RED_VALUE * 100.0).Round());
bac.UnlockBits(data_bac);
return bac;
}
示例5: Get_PANEL_Image
protected override void Get_PANEL_Image(out Bitmap bmp)
{
base.Get_PANEL_Image(out bmp);
BitmapData data_bmp = bmp.GetBitmapData( LAYOUT_RECT);
Draw_Table_Image(data_bmp);
bmp.UnlockBits(data_bmp);
}
示例6: Fold
unsafe static Bitmap Fold(Bitmap bmp, double angle)
{
double sin = Math.Sin(angle), cos = Math.Cos(angle);
double wc = (double)(bmp.Width - 1) / 2, hc = (double)(bmp.Height - 1) / 2;
double min = wc - hc, max = wc + hc;
PointD dis = new PointD(wc * (1.0 - cos), Math.Min(hc, max * sin));
Bitmap ans; BITMAP.New(out ans,Math.Max(1, (bmp.Width * cos).Ceiling()), (bmp.Height + min * sin - dis.Y).Ceiling());
BitmapData data_bmp = bmp.GetBitmapData();
BitmapData data_ans = ans.GetBitmapData();
byte* ptr_bmp = data_bmp.GetPointer();
byte* ptr_ans = data_ans.GetPointer();
PointD center = new PointD(wc, hc);
PointD now = (new PointD(0.0, 0.0)) - center;
double sqrt2 = Math.Sqrt(2.0);
for (int h = 0; h < bmp.Height; h++, now.Y += 1.0)
{
double l = (bmp.Height - 1 - h) + min;
for (int w = 0; w < bmp.Width; w++, ptr_bmp += 4, now.X += 1.0)
{
double ratio = (now / center).Hypot() / sqrt2;
int y = (h + l * ratio * sin - dis.Y).Round();
int x = (wc + (w - wc) * cos - dis.X).Round();
if (y == -1) y++;
else if (y == ans.Height) y--;
if (x == -1) x++;
else if (x == ans.Width) x--;
if (!x.AtRange(0, ans.Width - 1) || !y.AtRange(0, ans.Height - 1))
{
string msg = "error" + ans.Size.ToString() + new Point(w, h).ToString() + new Point(x, y).ToString();
msg += "\r\n" + ratio.ToString() + now.ToString() + center.ToString();
MessageBox.Show(msg);
continue;
}
int i = data_ans.Stride * y + 4 * x;
if (ptr_ans[i + 3] != 0) continue;
ptr_ans[i + 0] = ptr_bmp[0];
ptr_ans[i + 1] = ptr_bmp[1];
ptr_ans[i + 2] = ptr_bmp[2];
ptr_ans[i + 3] = ptr_bmp[3];
}
ptr_bmp += data_bmp.Stride - 4 * bmp.Width;
now.X = -center.X;
}
ptr_ans = data_ans.GetPointer();
for (int h = (hc - dis.Y).Round(), w = ans.Width / 2; h < ans.Height; h++)
{
int i = data_ans.Stride * h + 4 * w;
if (ptr_ans[i + 3] != 0) continue;
ptr_ans[i + 0] = 100;
ptr_ans[i + 1] = 100;
ptr_ans[i + 2] = 100;
ptr_ans[i + 3] = 255;
}
bmp.UnlockBits(data_bmp);
ans.UnlockBits(data_ans);
return ans;
}
示例7: GetImage
protected override void GetImage(out Bitmap bac)
{
if (TEXT.IndexOf("Blade") != -1 || TEXT.IndexOf("Swashplate") != -1)
{
double time = Game.TIME;
double angle = time;
if (TEXT.IndexOf("Blade") != -1)
{
double limit = UpgradeInfo.DataBase.BladeUpgradeValues[INDEX];
if (limit != double.MaxValue)
{
angle %= 2.0 * limit;
if (angle > limit) angle = 2.0 * limit - angle;
angle -= 0.5 * limit;
}
angle *= 2.0;
}
else if (TEXT.IndexOf("Swashplate") != -1)
{
angle = 0.5 * Math.Cos(Math.PI * time / UpgradeInfo.DataBase.SwashplateUpgradeValues[INDEX]) * Math.PI;
}
Bitmap bmp = Pod_Frame.Pod.GenerateImage(angle, Math.PI * Game.TIME);
BITMAP.New(out bac,50, 50, Color.FromArgb(0, 0, 128));
bac.Paste(bmp, bac.Half() - bmp.Half(), ImagePasteMode.Transparent);
bac = bac.Resize(2.0);
BitmapData data_bac = bac.GetBitmapData();
DrawLOCKED(data_bac);
bac.UnlockBits(data_bac);
}
else
{
Bitmap bmp; base.GetImage(out bmp);
BITMAP.New(out bac,bmp.Width, bmp.Height, Color.FromArgb(0, 0, 128));
bac.Paste(bmp, new Point(0, 0), ImagePasteMode.Transparent);
}
}
示例8: GetImage
//public new Bitmap Image { get { return GetImage(); } }
protected override void GetImage(out Bitmap bmp)
{
bmp = new Bitmap(BACKGROUND);
BitmapData data_bmp = bmp.GetBitmapData();
data_bmp.Paste(IMAGE, new Point(0, 0), ImagePasteMode.Overwrite);
DrawName(data_bmp);
DrawPrice(data_bmp);
DrawOwned(data_bmp);
DrawDescription(data_bmp);
DrawLOCKED(data_bmp);
bmp.UnlockBits(data_bmp);
}
示例9: GetImage
protected override void GetImage(out Bitmap bac)
{
if (BLOOD <= 0.0 && DEAD_TIME >= DEAD_PERIOD) bac= null;
base.GetImage(out bac); bac = new Bitmap(bac);
BitmapData data_bac = bac.GetBitmapData();
data_bac.Merge_RGB(Color.FromArgb(255, 0, 0), RED_RATIO);
data_bac.Paste(TEXT, data_bac.Half(), Color.FromArgb(255, 255, 255), TEXT.MaxFont(data_bac), StringAlign.Middle, StringRowAlign.Middle);
if (BLOOD <= 0.0) data_bac.Multiply_A(1.0 - DEAD_TIME / DEAD_PERIOD);
bac.UnlockBits(data_bac);
}
示例10: Get_GoodBye_Image
static Bitmap Get_GoodBye_Image(out Bitmap bac)
{
bac = new Bitmap(Properties.Resources.GoodBye);
BitmapData data_bac=bac.GetBitmapData();
data_bac.Merge(Color.FromArgb(255, 255, 255), 0.5);
using (Font font = new Font("微軟正黑體", 40, FontStyle.Bold | FontStyle.Italic))
{
data_bac.Paste("Good Bye~~~", new Point(bac.Width, bac.Height - 10), Color.FromArgb(255, 64, 0), font, StringAlign.Right, StringRowAlign.Down);
}
string s=Properties.Resources.GoodByeInformation;
s += "\r\nClose in " + (FORM_CLOSING_PERIOD - FORM_CLOSING_TIME).ToString("F2") + " Secs";
Bitmap bmp;
using (Font font = new Font("微軟正黑體", 20, FontStyle.Bold))
{
bmp = s.ToBitmap(data_bac.Width, font, Color.FromArgb(128, 0, 128), StringAlign.Right);
}
data_bac.Paste(bmp, new Point(data_bac.Width - bmp.Width, 0), ImagePasteMode.Transparent);
bac.UnlockBits(data_bac);
return bac;
}
示例11: Get_Image
static Bitmap Get_Image()
{
Bitmap ans;
using (Bitmap bmp = new Bitmap(FULL))
{
Point p = new Point(0, ((1.0 - RATIO) * bmp.Height).Round());
Size sz = new Size(bmp.Width, bmp.Height - p.Y);
using (Bitmap bac = new Bitmap(EMPTY))
{
BitmapData data_bac = bac.GetBitmapData();
data_bac.Paste(bmp, new Point(0, 0), ImagePasteMode.Transparent, new Rectangle(p, sz));
data_bac.Add_RGB(-(BLACK_VALUE * 100.0).Round());
double healthratio = VALUE / MAXIMUM;
string text = (healthratio * 100.0).ToString("F2") + " %";
Color textcolor = Color.FromArgb(0, 255, 0).Merge(Color.FromArgb(0, 0, 0), BLACK_VALUE);
using (Font font = new Font("微軟正黑體", 14, FontStyle.Bold))
{
data_bac.Paste(text, data_bac.Half(), textcolor, font, StringAlign.Middle, StringRowAlign.Middle);
}
bac.UnlockBits(data_bac);
ans = bac.Resize(SIZE_RATIO);
}
}
return ans;
}