picturebox1

合集下载

picturebox的使用方式

picturebox的使用方式

picturebox的使用方式PictureBox是.NET Framework中的一种控件,用于在Windows窗体应用程序中显示图片。

以下是PictureBox的使用方式:1.添加PictureBox控件:在Visual Studio中,从工具箱拖拽PictureBox控件到窗体上。

2.加载图片:在设计阶段,可以通过Picture属性加载图片。

单击Picture属性后的“…”按钮,弹出“加载图片”对话框,选择所需的图片文件后加载。

另外,也可以在代码中通过LoadPicture函数加载图片。

例如:c#pictureBox1.Image = Image.FromFile("D:\\MyGif\\AniGif0562.gif");或c#pictureBox1.Image = new Bitmap("D:\\MyGif\\AniGif0562.gif");3.显示图片:通过PictureBox控件的SizeMode属性设置图片的显示模式。

SizeMode属性有9种模式,可以根据实际需求进行选择。

4.保存图片:可以通过访问PictureBox的Image属性,使用Bitmap类的Save方法将图片保存到文件中。

例如:c#pictureBox1.Image.Save("D:\\MyGif\\AniGif0562.gif",System.Drawing.Imaging.ImageFormat.Gif);5.删除图片:在设计阶段,可以通过按Delete键删除PictureBox控件,然后从工具箱拖拽一个新的PictureBox控件到窗体上。

或在属性对话框里的Picture属性,把“(位图)”这几个反白,或是移到“(”的最前端,按一下键盘的Delete键即可移除图片。

6.响应鼠标事件:可以通过编写事件处理程序,响应PictureBox控件的鼠标事件,例如单击、双击、鼠标移动等。

C#Picturebox控件上画图闪烁问题的解决方案

C#Picturebox控件上画图闪烁问题的解决方案
gg.DrawLine(bi, p1, p2); gg.DrawLine(bi, p2, p3); gg.DrawLine(bi, p3, p4); gg.DrawLine(bi, p4, p1);
} gg.Dispose();
//将要绘制的内容绘制到dc上
g.DrawImage(b, 0, 0); gg.Dispose(); }
Bitmap b = new Bitmap(this.Width, this.Height); Graphics dc = Graphics.FromImage((System.Drawing.Image)b);
//将要绘制的内容绘制到dc上
g.DrawImage(b, 0, 0); dc.Dispose();
Bitmap b = new Bitmap(this.Width, this.Height); Graphics gg = Graphics.FromImage((System.Drawing.Image)b); Pen bi = new Pen(Color.Blue, 2); for (int i = 0; i < 1; i++) {
请求出错错误代码400请尝试刷新页面重试
C#Picturebox控 件 上 画 图 闪 烁 问 题 的 解 决 方 案
引用:
Graphics g = e.Graphics;
//注意,这里千万不可用Graphics g = this.CreateGraphics() 获得绘图变量。否则闪烁将非常厉害。
使用实例:
private void pictureBox1_Paint(object sender, PaintEventArgs e) {
Graphics g = e.Graphics;

windows forms加载图片

windows forms加载图片

最近学习windows forms,即windows 窗体应用程序,这是我做成的第一个例子,加载显示一张图片,过程如下:
首先新建一个项目:
文件——新建——项目:如下图
选择CLR——windows窗体应用程序,起名字叫做demo,点击确定,如下图:
新建立好的项目如下图所示:
从工具箱里拖出来两个控件:PictureBox和Button,如下图。

若工具箱没有显示,则从菜单栏:视图——工具箱打开。

添加完成控件后,我们便可以对控件做属性修改,这里我们直接使用默认,不做修改,具体修改方法请参见其他书籍。

然后我们添加代码,以实现单机button就加载一幅图片显示的功能,双击button按钮,自动进入编辑代码的地方,如图:
我们在按键button1_click处添加代码:
pictureBox1->Image=Image::FromFile("d:\\03.jpg");
其中双引号里面的是需要加载图片的路径,这个是使用C++时代码的写法,网上好多写成:
pictureBox1.Image=Image.FromFile("d:\\03.jpg");这种形式,这是在C#中的写法,如果用C++的时候这样是无法编译通过的,然后生成,运行,结果如下图所示:单击button按键加载一幅图片进来。

VB教案(13)图片框(PictureBox)

VB教案(13)图片框(PictureBox)

VB教案(13)图片框(PictureBox)(十三)图片框(PictureBox)用于在运行中执行画图的方法,故占用资源较多。

也可显示图形和写入文本,用途比较灵活。

一.图片框的属性:1.N ame属性:2.P icture属性:在设计时通过属性窗口加载指定的图片文件。

加载后会产生一个.FRX的文件存放图片。

3.A utoRedraw属性:设为True时:自动重绘有效。

图形和文本存在内存中,图片框重现或移动时,图形和文本会自动刷新。

设为False时:重绘功能无效。

图形和文本仅输出到屏幕上,并未存入内存,图片框移动或重现时,不能刷新。

4.A utoSize属性:设为True时:图片框会自动调整大小来适应图片文件的尺寸。

当然图片大小超出窗体大小时,也会被裁剪掉右边和底部的超出部分。

设为False时:图片框大小保持不变,图片的超出部分会被从右边和下边裁剪掉。

5.C urrent X和Current Y属性:决定当前的绘图位置坐标,或返回当前位置的坐标值。

6.F illColor属性:决定闭合图形中填充图案的颜色。

7.F illStyle属性:决定闭合图形中填充图案的类型。

0:实心图形。

颜色由FillColor属性决定。

1:(缺省)透明。

2:水平线。

3:垂直线。

4:向上对角线。

5:向下对角线。

6:十字交叉线。

7:对角交叉线。

8.B ackColor和ForeColor属性:9.B orderColor属性:决定边框的颜色。

10.FontTransparent属性:设为True时:文字的周围是透明的。

(当文字和图形重叠时仅感觉文字写在图形上)设为False时:文字的周围不透明。

(当文字和图形重叠时文字以一方块区叠在图形上)11.Align属性:决定图片框在窗体上的大小显示方式和显示的位置。

0:可以在设计时或在程序中确定图片框的大小和位置。

1:图片框显示在窗体顶部。

2:图片框显示在窗体底部。

3:图片框显示在窗体的左边。

winform picturebox 用法 -回复

winform picturebox 用法 -回复

winform picturebox 用法-回复Winform PictureBox 用法PictureBox 是用于在Winform 应用程序中显示图像的控件。

它提供了一种简单的方式来加载、显示和操作图像。

在本文中,我们将一步一步地探索Winform PictureBox 的用法。

1. 创建PictureBox首先,在Visual Studio 的Winform 应用程序中创建一个新的窗体。

然后,从工具箱中拖动一个PictureBox 控件到窗体上。

您可以调整PictureBox 的大小和位置,以适应窗体。

2. 设置图片要设置PictureBox 的图像,可以通过以下两种方式之一来完成。

- 通过代码设置图片:要动态设置PictureBox 的图像,可以使用以下代码片段:pictureBox1.Image = Image.FromFile("image.jpg");这将从文件路径加载一个图像,并将其设置为PictureBox 的图像。

- 使用设计器设置图片:另一种设置PictureBox 图像的方法是使用设计器。

选择PictureBox 控件,然后在“属性窗格”中找到“Image”属性。

点击“...”按钮以浏览您的计算机并选择要加载的图像文件。

无论您选择哪种方法,都可以使用绝对路径或相对路径来设置图像。

3. 调整图像大小PictureBox 提供了一些选项来调整图像在控件中的大小。

这些选项可以在属性窗格的“SizeMode”属性中找到。

以下是几种常用的调整大小选项:- Normal:图像在控件内保持原始的大小。

- StretchImage:图像将自动缩放以适应PictureBox 的大小,保持纵横比。

- AutoSize:控件将根据图像的大小调整自身的大小。

- CenterImage:图像将在控件中居中显示。

您可以根据需要选择适合您应用程序的调整大小选项。

4. 图片布局和对齐PictureBox 还提供了布局和对齐选项,以确保图像在控件中得到正确的显示。

VB教程:图片框(PictureBox)

VB教程:图片框(PictureBox)

VB教程:图片框(PictureBox)11、图片框(Picture Box)作用:添加图形的容器。

在面向对象程序设计过程中,每一个对象的添加都必须有对应的载体或容器。

在前面介绍的窗体、框架控件和图片框控件都可以作为容器来添加其他控件,与窗体和框架控件相比,图片框控件用作容器时,具有更多的图形功能。

Picture Box控件支持下列5种图形格式:Bitmap位图:它将图像定义为点(像素)的图案。

位图的文件扩展名是.bmp或.dib。

Icon图标:这是一种特殊类型的位图。

图标的尺寸为32像素x 32像家,但在windows 98下,图标也可为16x16像素大小。

图标的文件扩展名为.ico。

Metafile图元文件:这是将图形定义为编码的线段和图形。

普通图元文件扩展名为.wmf。

JPEG:Internet上一种流行的压缩位图格式,支持8位和24位颜色。

GIF;Internet上一种流行的压缩位图文件格式,它可支持多达256种颜色。

(1)图片框的特殊属性Align属性——返回或设置一个值,确定对象是否可在窗体上以任意大小、在任意位置上显示,或是显示在窗体的顶端、底端、左边或右边,而且自动改变大小以适应窗体的宽度。

语法结构:object.Align [ = number ]Align 属性的设置值及其说明设置数字说明VbAlignNone 0 无,可以在设计时或在程序中确定大小和位置VBAlignTop 1 顶部,对象显示在窗体的顶部,其宽度等于窗体的ScaleWidth属性设置值VbAlignBotton 2 底部,对象显示在窗体的底部,其宽度等于窗体的ScaleWidth属性设置值VbAlignLeft 3 左边,对象在窗体左面,其宽度等于窗体的ScaleWidth属性设置值vbAlignRight 4 右边,对象在窗体右面,其宽度为窗体的ScaleWidth属性设置值注意:利用Align属性可以很快地在窗体的顶部或底部创建工具栏或状态栏。

简单C# DGI绘图时钟 (透明pictureBox解决抖动问题)

简单C# DGI绘图时钟 (透明pictureBox解决抖动问题)

简单C# DGI绘图时钟(透明pictureBox解决抖动问题)以前用VC++设计过时钟,也用flash做过,也在web 上结合js做过,采用的思路是在直接绘制,当然是画圆、描点采用计数器来定时绘制时针、分针和秒针。

这里是在C#中采用GDI绘图来完成,结合pictureBox来解决了普通的抖动、闪烁问题。

解决方法:1 当然是在表单上拖置一个pictureBox控件,这里暂且name = pictureBox12 重载OnPaint方法:protected override voidOnPaint(PaintEventArgs e)3 设置定时器timer,name =timer1, 响应timer1_Tick(),并在事件中重绘pictureBox[也可以用Threading来sleep方法来定时]pictureBox1.Invalidate();4 [关键]在OnPaint()方法中绘制表盘和刻度等5 [关键]将pictureBox的设置为透明。

属性-&gt;&gt;backcolor-&gt;&gt;web-&gt;&gt;Transparent完整代码如下:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Drawing.Drawing2D;using System.Text;using System.Windows.Forms;namespace clock{public partial class Form1 : Form{private Graphics g;private Pen pen;private FontFamily MyFamily;private Font MyFont;private int w;private int h;public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){timer_Second.Start(); //开启定时器timer_Second.Interval = 1000; //间隔为毫秒,即秒}protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);g = e.Graphics;g.SmoothingMode = SmoothingMode.AntiAlias; //g.SmoothingMode =SmoothingMode.HighQuality;//绘图模式默认为粗糙模式,将会出现锯齿!w = pictureBox1.Width;h = pictureBox1.Height;int x1 = pictureBox1.Location.X;int y1 = pictureBox1.Location.Y;/*------------------------------------------------------------------------------计算:整点刻度个,每个刻度偏移角度为/12 = 30 度及为小时偏移角度分秒刻度为个,每个刻度偏移角度为/60 = 6 度及为分、秒偏移角度--------------------------------------------------------------------------------*/g.FillEllipse(Brushes.Black, x1+2,y1+2, w - 4, h - 4); //外圆MyFamily = newSystem.Drawing.FontFamily("Impact"); //字体MyFont = new System.Drawing.Font(MyFamily, 20, FontStyle.Bold, GraphicsUnit.Pixel);g.DrawString("HOCYLAN", MyFont, Brushes.Yellow, x1 + w-180, y1 + h -100);MyFamily = newSystem.Drawing.FontFamily("Times New Roman");MyFont = new System.Drawing.Font(MyFamily, 14, FontStyle.Bold, GraphicsUnit.Pixel);pen = new Pen(Color.White, 2);g.DrawEllipse(pen, x1+7, y1+7, w - 13, h - 13);// 内圆g.TranslateTransform(x1+(w / 2),y1+(h / 2));//重新设置坐标原点g.FillEllipse(Brushes.White, -5,-5, 10, 10);//绘制表盘中心//g.TranslateTransform(w/2,h/2);for (int x = 0; x &lt; 60; x++) //小刻度{g.FillRectangle(Brushes.White, new Rectangle(-2, (System.Convert.ToInt16(h- 8) / 2 - 2) * (-1), 3,10));g.RotateTransform(6);//偏移角度}for (int i = 12; i &gt; 0; i--) //大刻度{string myString = i.ToString();//绘制整点刻度g.FillRectangle(Brushes.White, new Rectangle(-3, (System.Convert.ToInt16(h - 8) / 2 - 2) * (-1), 6, 20));//绘制数值g.DrawString(myString, MyFont, Brushes.White, new PointF(myString.Length * (-6),( h - 8) / -2+ 26));//顺时针旋转度g.RotateTransform(-30);//偏移角度}}private void pictureBox1_Paint(object sender, PaintEventArgs e){g = e.Graphics;//绘图模式默认为粗糙模式,将会出现锯齿!g.SmoothingMode = SmoothingMode.AntiAlias;g.SmoothingMode =SmoothingMode.HighQuality;g.TranslateTransform(w / 2, h / 2);//重新设置坐标原点//获得系统时间值int second = DateTime.Now.Second;int minute = DateTime.Now.Minute;int hour = DateTime.Now.Hour;/*------------------------------------------------------------------------------------每秒偏移度,秒针偏移=当前秒*6每分偏移读,分针偏移= 当前分*6+当前秒*(/60)每小时偏移读,时针偏移= 当前时*30+当前分*(/60)+当前秒*(/60/60)--------------------------------------------------------------------------------------*///绘秒针pen = new Pen(Color.White, 1);pen.EndCap = LineCap.ArrowAnchor;g.RotateTransform(6 * second);float y = (float)((-1) * (h / 2.75));g.DrawLine(pen, new PointF(0, 0), newPointF((float)0, y));////绘分针pen = new Pen(Color.White, 4);// pen.EndCap = LineCap.ArrowAnchor;g.RotateTransform(-6 * second); //恢复系统偏移量,再计算下次偏移g.RotateTransform((float)(second*0.1+minute*6));y = (float)((-1) * ((h-20) / 2.75));g.DrawLine(pen, new PointF(0, 0), newPointF((float)0, y));////绘时针pen = new Pen(Color.White, 6);// pen.EndCap = LineCap.ArrowAnchor;g.RotateTransform((float)(-second * 0.1 - minute * 6));//恢复系统偏移量,再计算下次偏移g.RotateTransform((float)(second * 0.01 + minute * 0.1+hour*30));y = (float)((-1) * ((h-35) / 2.75));g.DrawLine(pen, new PointF(0, 0), newPointF((float)0, y));}private void timer1_Tick(object sender, EventArgs e){pictureBox1.Invalidate();//只重新绘制pictureBox}}}最后执行结果如下:。

picturebox控件用法 -回复

picturebox控件用法 -回复

picturebox控件用法-回复关于PictureBox控件的用法,我们一步一步来进行详细解析。

首先,PictureBox控件是Windows Forms中常用的一个控件,它用于在窗体上展示图片。

通过该控件,我们可以在界面中加载、显示和管理图片。

1. 创建PictureBox控件:要使用PictureBox控件,首先需要在窗体上创建一个PictureBox控件。

在Visual Studio中,可以通过拖拽方式将PictureBox控件放置于窗体中。

2. 设置PictureBox控件的属性:对于PictureBox控件,我们可以通过设置其各种属性来控制显示效果。

以下是一些常用的属性:- Image:设置PictureBox中要显示的图片。

可以通过指定图片文件路径或者使用Image类加载图片。

- SizeMode:设置图片在PictureBox中的显示方式,包括自动尺寸、拉伸、居中等等。

- BorderStyle:设置PictureBox的边框样式,包括无边框、固定单线边框、三维边框等。

- BackColor:设置PictureBox的背景颜色。

3. 加载图片:一旦PictureBox控件创建并设置好属性,我们可以通过编程方式加载图片。

例如,可以使用Image类将图片加载到PictureBox中:csharppictureBox1.Image = Image.FromFile("image.jpg");或者,可以使用OpenFileDialog控件让用户选择图片文件:csharpOpenFileDialog openFileDialog1 = new OpenFileDialog();if (openFileDialog1.ShowDialog() == DialogResult.OK){pictureBox1.Image =Image.FromFile(openFileDialog1.FileName);}4. 显示图片:一旦图片加载到PictureBox中,控件会自动显示该图片。

c#画图程序完整代码

c#画图程序完整代码

C#画图程序,可以话直线,可以画圆,可以使用橡皮檫,可以新建文件,打开文件,保存文件,退出,可画矩形,可旋转。

下面为程序全整代码。

using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Drawing.Imaging;using System.IO;using System.Threading;using System.Drawing.Drawing2D;using System.Text.RegularExpressions;using System.Collections;namespace mydraw{public partial class Form1 : Form{Pen p = new Pen(Color.Black, 5);int mdb2 = 1;Point b2start = new Point(0, 0);Point b2stop = new Point(0, 0);int mdb3 = 1;Point b3start = new Point(0, 0);Point b3stop = new Point(0, 0);int mdb4 = 1;Point b4start = new Point(0, 0);Point b4stop = new Point(0, 0);int mdb10= 1;Point b10start = new Point(0, 0);Point b10stop = new Point(0, 0);public Form1(){InitializeComponent();}private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) {Application.Exit();}private void 新建图形ToolStripMenuItem_Click(object sender, EventArgs e) {pictureBox1.Refresh();}private void button1_Click(object sender, EventArgs e){if (button1.BackColor == Color.White){button1.BackColor = Color.MistyRose;button2.BackColor = Color.White;button3.BackColor = Color.White;button4.BackColor = Color.White;button5.BackColor = Color.White;button10.BackColor = Color.White;pictureBox1.Cursor = Cursors.Cross;}else{button1.BackColor = Color.White;pictureBox1.Cursor = Cursors.Default;}}private void 清除图形ToolStripMenuItem_Click(object sender, EventArgs e) {}private void button6_Click(object sender, EventArgs e){ColorDialog ColorDialog1 = new ColorDialog();ColorDialog1.AllowFullOpen = true;ColorDialog1.FullOpen = true;ColorDialog1.ShowHelp = true;ColorDialog1.Color = Color.Black;if (ColorDialog1.ShowDialog() != DialogResult.Cancel) button6.BackColor = ColorDialog1.Color;}private void button2_Click(object sender, EventArgs e){if (button2.BackColor == Color.White){button1.BackColor = Color.White;button2.BackColor = Color.MistyRose;button3.BackColor = Color.White;button4.BackColor = Color.White;button5.BackColor = Color.White;button10.BackColor = Color.White;pictureBox1.Cursor = Cursors.Cross;MessageBox.Show("我们一起来画直线吧");}else{button2.BackColor = Color.White;pictureBox1.Cursor = Cursors.Default;}}private void button3_Click(object sender, EventArgs e){if (button3.BackColor == Color.White){button1.BackColor = Color.White;button2.BackColor = Color.White;button3.BackColor = Color.MistyRose;button4.BackColor = Color.White;button5.BackColor = Color.White;button10.BackColor = Color.White;pictureBox1.Cursor = Cursors.Cross;MessageBox.Show("先选择矩形左上角的点,再选择矩形的右下角的点");}else{button3.BackColor = Color.White;pictureBox1.Cursor = Cursors.Default;}}private void button4_Click(object sender, EventArgs e){if (button4.BackColor == Color.White){button1.BackColor = Color.White;button2.BackColor = Color.White;button3.BackColor = Color.White;button4.BackColor = Color.MistyRose;button5.BackColor = Color.White;button10.BackColor = Color.White;pictureBox1.Cursor = Cursors.Cross;MessageBox.Show("先选择椭圆左上角的点,再选择椭圆的右下角的点");}else{button4.BackColor = Color.White;pictureBox1.Cursor = Cursors.Default;}}private void button5_Click(object sender, EventArgs e){if (button5.BackColor == Color.White){button1.BackColor = Color.White;button2.BackColor = Color.White;button3.BackColor = Color.White;button4.BackColor = Color.White;button10.BackColor = Color.White;pictureBox1.Cursor = Cursors.Cross;}else{button5.BackColor = Color.White;pictureBox1.Cursor = Cursors.Default;}}private void button10_Click(object sender, EventArgs e){if (button10.BackColor == Color.White){button1.BackColor = Color.White;button2.BackColor = Color.White;button3.BackColor = Color.White;button4.BackColor = Color.White;button10.BackColor = Color.MistyRose;button5.BackColor = Color.White;pictureBox1.Cursor = Cursors.Cross;MessageBox.Show("先选择圆的圆心,再选择圆上的一点");}else{button10.BackColor = Color.White;pictureBox1.Cursor = Cursors.Default;}}private void 关于作者ToolStripMenuItem_Click(object sender, EventArgs e) {MessageBox.Show("作者:林元培学号:2011301610213");}private void pictureBox1_MouseMove(object sender, MouseEventArgs e) {//画自由线的{Graphics g = pictureBox1.CreateGraphics();if (e.Button == MouseButtons.Left){p.Color = button6.BackColor;Point start = new Point(e.X, e.Y);Point stop = new Point(e.X, e.Y - 1);Point part = new Point((int)(start.X + stop.X) / 2, (int)(start.Y + stop.Y) /2);g.DrawLine(p, start, part);g.DrawLine(p, part, start);start = stop;}}//橡皮擦if (button5.BackColor == Color.MistyRose){Graphics g = pictureBox1.CreateGraphics();if (e.Button == MouseButtons.Left){p.Color = Color.White;p.Width = 30;Point start = new Point(e.X, e.Y);Point stop = new Point(e.X, e.Y - 1);Point part = new Point((int)(start.X + stop.X) / 2, (int)(start.Y + stop.Y) /2);g.DrawLine(p, start, part);g.DrawLine(p, part, start);start = stop;//画直线}}}private void pictureBox1_MouseDown(object sender, MouseEventArgs e) {//画两点间直线if (button2.BackColor == Color.MistyRose){if (this.mdb2 == 1){b2start.X = e.X;b2start.Y = e.Y;mdb2++;}else if (this.mdb2 == 2){b2stop.X = e.X;b2stop.Y = e.Y;mdb2--;Graphics g = pictureBox1.CreateGraphics();p.Color = button6.BackColor;g.DrawLine(p, b2start, b2stop);}}//画两点间矩形if (button3.BackColor == Color.MistyRose){if (this.mdb3 == 1){b3start.X = e.X;b3start.Y = e.Y;mdb3++;}else if (this.mdb3 == 2){b3stop.X = e.X;b3stop.Y = e.Y;mdb3--;Graphics g = pictureBox1.CreateGraphics();p.Color = button6.BackColor;if (b3stop.X - b3start.X < 0 || b3stop.Y - b3start.Y < 0) MessageBox.Show("孩子,我不是说过的吗~~~~~\n先指定左上一点", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);g.DrawRectangle(p, b3start.X, b3start.Y, b3stop.X - b3start.X, b3stop.Y - b3start.Y);}}//画两点间椭圆if (button4.BackColor == Color.MistyRose){if (this.mdb4 == 1){b4start.X = e.X;b4start.Y = e.Y;mdb4++;}else if (this.mdb4 == 2){b4stop.X = e.X;b4stop.Y = e.Y;mdb4--;Graphics g = pictureBox1.CreateGraphics();p.Color = button6.BackColor;if (b4stop.X - b4start.X < 0 || b4stop.Y - b4start.Y < 0) MessageBox.Show("小朋友,注意点的顺序!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);g.DrawEllipse(p, b4start.X, b4start.Y, b4stop.X - b4start.X, b4stop.Y - b4start.Y);}}//画圆的代码if (button10.BackColor == Color.MistyRose){if (this.mdb10 == 1){b10start.X = e.X;b10start.Y = e.Y;mdb10++;}else if (this.mdb10 == 2){b10stop.X = e.X;b10stop.Y = e.Y;mdb10--;p.Color = button6.BackColor;Graphics g = pictureBox1.CreateGraphics();int d = (int)Math.Sqrt((b10start.X - b10stop.X) * (b10start.X - b10stop.X) + (b10start.Y - b10stop.Y) * (b10start.Y - b10stop.Y));Rectangle rect = new Rectangle(b10start.X-d , b10start.Y-d, 2*d, 2*d);g.DrawEllipse(p ,rect );}}}美容养颜吧:private void button7_Click(object sender, EventArgs e){p.Width = 2;}private void button8_Click(object sender, EventArgs e){p.Width = 5;}private void button9_Click(object sender, EventArgs e){p.Width = 10;}private void 保存ToolStripMenuItem_Click(object sender, EventArgs e){SaveFileDialog sa = new SaveFileDialog();sa.Filter = "保存(*.bmp)|*.bmp";sa.FilterIndex = 2;sa.RestoreDirectory = true;if (DialogResult.OK == sa.ShowDialog()){if (pictureBox1.Image != null){Image im = this.pictureBox1.Image;Bitmap bit = new Bitmap(im);bit.Save(sa.FileName, System.Drawing.Imaging.ImageFormat.Bmp);}else{MessageBox.Show("已保存");}}}private void 旋转ToolStripMenuItem_Click(object sender, EventArgs e){}private void 度ToolStripMenuItem_Click(object sender, EventArgs e){}private void 度ToolStripMenuItem1_Click(object sender, EventArgs e){}private void 新建ToolStripMenuItem_Click(object sender, EventArgs e){}private void pictureBox1_Click(object sender, EventArgs e){}private void 关于ToolStripMenuItem_Click(object sender, EventArgs e){}private void Form1_Load(object sender, EventArgs e){}private void groupBox1_Enter(object sender, EventArgs e){}private void 缩放ToolStripMenuItem_Click(object sender, EventArgs e){}private void 放大ToolStripMenuItem_Click(object sender, EventArgs e){}private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e){MessageBox.Show("先选择矩形左上角的点,再选择矩形的右下角的点");}private void button11_Click(object sender, EventArgs e){}}}。

picturebox控件用法

picturebox控件用法

一、picturebox控件简介picturebox控件是Visual Studio中常用的一个控件,它可以用来显示图像,是Windows窗体应用程序中的一个常见控件。

通过picturebox控件,用户可以在窗体中方便地显示图片,并实现一些基本的图像操作。

二、picturebox控件的基本属性和方法1. 图片的显示和缩放在使用picturebox控件时,可以通过设置其SizeMode属性来控制图片的显示方式,包括在原始大小、拉伸、自动大小等模式中进行选择;而通过SizeMode属性的设置,可以灵活地控制图片在控件中的显示效果。

另外,picturebox控件还提供了一些方法来实现图片的缩放操作,使得用户可以方便地调整图片的大小和位置。

2. 图片的加载和保存通过picturebox控件,用户可以通过Load方法来加载本地的图片文件,或者通过Image属性直接设置控件中显示的图片;用户还可以通过Save方法将图片保存为指定的文件格式。

这些方法为用户提供了便利的方式来实现图片的加载和保存操作。

3. 图片的绘制和编辑在使用picturebox控件时,用户可以利用Graphics对象来对图片进行绘制和编辑操作,实现一些简单的图像处理效果。

可以通过获取picturebox控件的Graphics对象,在图像上进行绘制操作,实现一些简单的图像编辑效果,如画线、填充颜色等。

4. 鼠标事件处理picturebox控件还支持鼠标事件的处理,用户可以通过注册相应的事件处理程序来实现对鼠标事件的响应,如鼠标点击、移动等。

通过鼠标事件的处理,用户可以实现一些交互式的图片操作,增强用户体验。

5. 其他属性和方法除了上述常用的属性和方法外,picturebox控件还提供了一些其他的属性和方法,如SizeMode、BorderStyle等属性,以及Refresh、Invalidate等方法,用户可以根据具体的需求选择和使用。

三、picturebox控件的应用场景1. 图片的显示和预览在Windows窗体应用程序中,常常需要显示一些图片,如产品图片、用户头像等,这时可以利用picturebox控件来实现对图片的显示和预览。

PictureBox控件应用实例

PictureBox控件应用实例

PictureBox控件应用方案知识讲解1.功能PictureBox控件提供了更多的功能和绘图的方法。

可以利用PictureBox控件提供的方法在其上面绘制图形,还可以把PictureBox控件作为容器,将其他控件放在其中,从而实现分组的效果。

2.属性PictureBox控件的常用属性如表1所示。

表1 PictureBox控件的属性下面对PictrueBox控件比较重要的属性进行详细介绍。

(1)AutoSize属性AutoSize属性用于返回或设置一个值,以决定PictrueBox控件是否自动改变大小以显示其全部内容。

语法:object.AutoSize [= boolean]图1所示演示的是PictureBox控件的AutoSize属性。

当AutoSize属性设置为True时,PictureBox控件的大小随图片的大小改变;当AutoSize属性设置为False时,PictureBox控件不随图片大小改变。

图1 AutoSize属性演示(2)Picture属性Picture属性是PictureBox控件最重要的属性之一。

在PictureBox控件中显示图片是由Picture属性决定的,有两种方法可以实现图片的添加。

●在设计时加载在“属性”窗口中找到Picture属性,单击其右边的按钮,打开文件对话框,选择要添加的图片。

●在运行时加载在运行时可以通过LoadPicture函数来设置Picture属性,也可以将其他控件的Picture值赋给PictureBox控件的Picture属性。

语法:object.Picture [= picture]object:对象表达式。

picture:字符串表达式,指定一个包含图片的文件,可以设置为bitmap、icon、metafile、GIF、JPEG型的图片。

利用下面的代码向PictureBox控件中添加图片:Picture1.Picture = LoadPicture("D:\图片素材\明日企标.jpg ")应用一:保存Picture控件中的图形要保存Picture控件中的图形,可以使用SavePicture语句,其可以从对象或控件(如果有一个与其相关)的Picture 或Image属性中将图形保存到文件中。

picturebox用法

picturebox用法

picturebox用法PictureBox是C#中的一个控件,用于在窗体上显示图像。

它提供了多种方法和属性,可以实现图像的显示、缩放、剪切等功能。

下面将一步一步回答有关PictureBox控件的用法,以帮助你更好地理解和应用它。

首先,创建一个PictureBox控件。

在窗体上拖动一个PictureBox控件,或者在代码中实例化一个PictureBox对象并将其添加到窗体上。

private PictureBox pictureBox1;...this.pictureBox1 = new PictureBox();this.Controls.Add(this.pictureBox1);接下来,指定要显示的图像。

PictureBox控件提供了一个Image属性,通过该属性可以加载图像,并在PictureBox上显示。

this.pictureBox1.Image = Image.FromFile(@"C:\image.jpg");注意:在显示图像之前,需要确保图像文件存在,并提供正确的文件路径。

可以选择性地设置PictureBox的SizeMode属性,以指定图像的显示方式。

PictureBox提供了多种SizeMode选项,包括AutoSize、CenterImage、Zoom等。

AutoSize会根据图像大小自动调整PictureBox 的大小; CenterImage会将图像居中显示,不进行缩放; Zoom会将图像缩放到PictureBox控件的大小以适应显示。

this.pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;如果希望自定义PictureBox控件的显示逻辑,可以使用Paint事件。

在Paint事件中,可以使用Graphics对象绘制各种形状、文本和图像。

private void pictureBox1_Paint(object sender, PaintEventArgs e) {Graphics g = e.Graphics;绘制一个矩形Rectangle rect = new Rectangle(10, 10, 100, 100);g.DrawRectangle(Pens.Red, rect);绘制一段文本string text = "Hello World";Font font = new Font("Arial", 12);g.DrawString(text, font, Brushes.Black, 10, 120);绘制一张图像Image image = Image.FromFile(@"C:\image.jpg");g.DrawImage(image, 10, 150);}在以上代码中,先创建一个Graphics对象,并在其上绘图。

[VB] chp11 绘 图

[VB] chp11 绘  图

第十一章绘图11-1 绘图基本观念在VB2005中绘图包含下列几个基本程序:1.建立或取得Graphics对象( 绘图对象),一般就是俗称画布。

2.定义画笔,提供绘图指令在绘图对象( 画布) 上绘画。

3.利用Graphics对象的DrawLine、DrawString、DrawImage…等方法绘制各种的图形。

4.释放Graphics对象所占用的系统资源。

11-2 绘图基本指令11-2-1 绘图对象的建立建立绘图对象(CreateGraphics ) Graphics使用CreateGraphics。

Dim 绘图对象As Graphics = 控制组件. CreateGraphics利用Graphics对象所绘制的图形显示在控制组件上。

例1 如设绘图对象g,其控制组件为窗体。

Dim g As Graphics = Me.CreateGraphics例2 如设绘图对象g1,其控制组件为图片方块(PictureBox1)。

Dim g1 As Graphics = PictureBox1.CreateGraphics11-2-2 画笔画笔(Pen ) 如绘画使用的画笔,提供绘图指令在绘图对象上绘画,画笔有二个特性:一为颜色,二为粗细。

Dim 画笔变数As New System.Drawing.Pen(Color.颜色, 粗细)设定画笔的颜色与粗细。

例如设画笔变量p1,其颜色为蓝色与粗细为2。

Dim p1 As New System.Drawing.Pen(Color.Blue, 2)11-2-3 画线DrawLine是在绘图对象上绘出一直线,画线(DrawLine) 就必须用到画笔,并且赋予起始点坐标及终点坐标。

绘图对象.DrawLine ( 画笔变数, x1, y1, x2, y2)依设定画笔的颜色与粗细,在绘图对象上绘出一直线。

1.直线颜色与粗细由画笔决定。

2.x1,y1是直线的起始点坐标。

3.x2,y2是直线的终点坐标。

ここでは、オブジェクトの移动、 キーボード からの入力判定

ここでは、オブジェクトの移动、 キーボード からの入力判定

動きのあるゲームここでは、オブジェクトの移動、キーボードからの入力判定について学んだ後、動きのある本格的なゲームを作成しましょう。

10.1オブジェクトの位置オブジェクトの位置もプロパティです。

Locationプロパティを見ることでオブジェクトの座標がわかります。

また、Locationプロパティを変更することでオブジェクトの位置を変更できます。

LocationプロパティはX座標とY座標がくっついたPointという名前の構造体です。

Location.XがX座標の値、Location.YがY座標の値です。

なお、Locationプロパティが表している座標は、そのオブジェクトの左上の点の座標です。

【例1】PictureBox1のX座標とY座標の値をそれぞれTextBox1とTextBox2に表示する場合、次のように書きます。

TextBox1.Text = PictureBox1.Location.XTextBox2.Text = PictureBox1.Location.Y【例2】PictureBox1の座標を(100, 200)に設定する場合、次のように書きます。

Dim P As PointP.X = 100P.Y = 200PictureBox1.Location = P【例3】PictureBox1の座標を(100, 200)に設定する場合、次のように書くこともできます。

PictureBox1.Location = New Point(100, 200)Locationプロパティを用いずに、LeftプロパティとTopプロパティによりオブジェクトのX座標とY座標を別々に参照または設定することもできます。

なお、LeftとTopはプロパティウィンドウに表示されていませんが、Leftに値を設定するとLocation.Xの値が、Topに値を設定するとLocation.Yの値がかわります。

【例4】PictureBox1のX座標とY座標の値を、LeftとTopプロパティにより、それぞれTextBox1とTextBox2に表示する。

VB中的picturebox和image

VB中的picturebox和image

Picturebox(图片框)默认有边框,image(图象框)默认没有,如果把image的borderstyle 设置为1,那么二者从外观上就没有什么区别了。

二者都有picture属性,可用来在设计阶段添加图片,放入picturebox中的图片默认最多只能显示出picturebox本来大小那么大的范围,通过设置autosize属性可以让框体自动适应放入图片的大小(picturebox的这一点和label很像,label也需要选择autosize为true才能使得框体大小适应输入内容);而image会根据放入图片的大小自动缩放框体大小适应图片,Inage的stretch属性默认等于false,表示图象框自动改变框体大小以适应放入图片的大小;等于true表示放入的图片自动缩放以适应图象框的大小。

图片框可以作为父控件,即可以在其中创建子控件,且可以使用print方法在其中输入文本。

而图象框不具备这些功能。

可以使用复制粘贴的方式来在设计阶段为picturebox、image、form等载入图片。

通过loadpicture函数为图片框、图象框、窗体等在运行期间载入图片,非常有用,比如上位机中指示灯的颜色在开机和关机时颜色不一样,可以用loadpitcure函数在不同时刻为按钮加载不同的图片;;当然也可以像许运做的那个上位机中那样把运行时需要使用的图片全部放在前面板上,把这些备用图片的visible设置为false,运行期间需要使用其中某个图片时直接用A.picture=B.picture这样属性值相等的方式来把备选图片载入A中。

删除图片文件必须要用object.picture=loadpicture()。

不可以用cls,cls只能用来清除窗体、图片框等中的文字、用line方法画的直线、用circle方法画的圆等,而不能用cls来清除载入的图片和子控件。

C#图片添加picturebox用法

C#图片添加picturebox用法

C#关于picturebox和imagelist的用法using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace TExt1{public partial class Form1 : Form{public Form1(){InitializeComponent();}int i;//系统当前有一张默认图片private void Form1_Load(object sender, EventArgs e){if (imageList1.Images.Count >= 1){pictureBox1.Image = imageList1.Images[0];}i = -1;}//增加图片private void button1_Click(object sender, EventArgs e) {OpenFileDialog ofd = new OpenFileDialog();ofd.InitialDirectory = "E:";ofd.Filter = "图像|*.jpg";ofd.RestoreDirectory = true;ofd.FilterIndex = 1;String fName;if (ofd.ShowDialog() == DialogResult.OK){fName = ofd.FileName;Image myImage = Image.FromFile(fName, true);imageList1.Images.Add(myImage);}i++;pictureBox1.Image = imageList1.Images[i];}//删除当前图片private void button2_Click(object sender, EventArgs e) {//图片数量大于1if (imageList1.Images.Count >= 1&&i>=0){imageList1.Images.RemoveAt(i);//i--;//判断图片是否为空if (imageList1.Images.Count == 0){pictureBox1.Image = null;i = -1;}else{pictureBox1.Image = imageList1.Images[i];}}//图片为空时不显示else{this.addTitle();}}//显示下一张图片private void button3_Click(object sender, EventArgs e) {if (imageList1.Images.Count >= 1){if (imageList1.Images.Count == 1){MessageBox.Show("只有一张图片");}i++;if (i > imageList1.Images.Count-1){i = 0;}pictureBox1.Image = imageList1.Images[i];}//清空所有的图片private void button4_Click(object sender, EventArgs e){DialogResult result = MessageBox.Show("确定清空", "提示信息", MessageBoxButtons.OKCancel, rmation);if (DialogResult.OK == result){imageList1.Images.Clear();pictureBox1.Image = null;i = -1;this.addTitle();}}//退出private void button5_Click(object sender, EventArgs e){Application.Exit();}//定义函数——当图片为空时点击确定添加图片private void addTitle()DialogResult sel = MessageBox.Show("图片为空,请选择一张图片,点击确定添加图片,否则点击取消!", "信息提示", MessageBoxButtons.OKCancel, rmation);if (sel == DialogResult.OK){OpenFileDialog ofd = new OpenFileDialog();ofd.InitialDirectory = "E:";ofd.Filter = "图像|*.jpg";ofd.RestoreDirectory = true;ofd.FilterIndex = 1;String fName;if (ofd.ShowDialog() == DialogResult.OK){fName = ofd.FileName;Image myImage = Image.FromFile(fName, true);imageList1.Images.Add(myImage);}i++;try{pictureBox1.Image = imageList1.Images[i];}catch (Exception ex){MessageBox.Show(ex.Message);}}}}}。

VBA中图像处理的基本方法

VBA中图像处理的基本方法

VBA中图像处理的基本方法图像处理在计算机科学和计算机视觉领域中具有重要的地位。

它通过对图像进行各种操作,从而改变图像的外观和特征。

在VBA(Visual Basic for Applications)中,我们可以利用一些基本方法来实现图像处理。

本文将介绍一些常用的VBA图像处理方法,以帮助读者更好地理解和使用VBA进行图像处理。

1. 图像的载入在进行图像处理之前,首先需要将图像加载到VBA中进行操作。

VBA提供了LoadPicture函数来实现图像的加载。

通过指定图像文件的路径,我们可以将图片读取到一个对象变量中,以便后续操作。

例如,以下代码将一个名为"image.jpg"的图像载入到VBA中:```vbaDim img As ObjectSet img = LoadPicture("C:\path\to\image.jpg")```2. 图像的显示载入图像后,可以将其显示在VBA的用户界面上,以便进行后续的处理。

VBA提供了PictureBox控件实现图像的显示。

通过设置PictureBox的Picture属性,我们可以将载入的图像展示出来。

例如,以下代码将载入的图像显示在名为"PictureBox1"的PictureBox控件上:```vbaPictureBox1.Picture = img```3. 图像的尺寸调整在进行图像处理时,有时需要调整图像的尺寸以适应特定需求。

VBA提供了一些方法来实现图像的尺寸调整。

其中一种常用的方法是使用PictureBox控件的AutoSize属性。

通过将AutoSize属性设置为True,可以自动调整PictureBox的大小以适应载入图像的尺寸。

例如,以下代码将自动调整PictureBox1的大小以适应载入图像的尺寸:```vbaPictureBox1.AutoSize = True```4. 图像的裁剪图像裁剪是一种常见的图像处理操作,可以通过剪切图像的部分区域来获取感兴趣的内容。

C#图片处理(黑白背景以及字体的颜色转换)

C#图片处理(黑白背景以及字体的颜色转换)

C#图⽚处理(⿊⽩背景以及字体的颜⾊转换)早上看到别⼈的⼀个需求,是有关图⽚处理的。

顺⼿写了⼀下。

其实就是简单的像素处理,⽩底⿊字转换为⿊底⽩字。

int width = pictureBox1.Image.Width;//获取图⽚宽度int height = pictureBox1.Image.Height;//获取图⽚⾼度Bitmap newmap = new Bitmap(width, height);//保存新图⽚Bitmap oldmap = (Bitmap)this.pictureBox1.Image;//保存旧图⽚Color pixel;//颜⾊匹对for (int i = 0; i < width; i++){for (int j = 0; j < height; j++){pixel = oldmap.GetPixel(i, j);//获取旧图⽚的颜⾊值(ARGB存储⽅式)int r, g, b, a;r = pixel.R;g = pixel.G;b = pixel.B;a = pixel.A;//⽩⾊RGB(255,255,255),⿊⾊(0,0,0)//判断是否属于⽩⾊背景if (r == 255 && g == 255 && b == 255){//设置新图⽚中指定像素的颜⾊为⿊⾊newmap.SetPixel(i, j, Color.FromArgb(0, 0, 0));}else if (r == 0 && g == 0 && b == 0){ //设置新图⽚中指定像素的颜⾊为⽩⾊newmap.SetPixel(i, j, Color.FromArgb(255, 255, 255));}else{newmap.SetPixel(i, j, Color.FromArgb(255 - r, 255 - g, 255 - b));}}}pictureBox1.Image = newmap;本⽂从百度空间搬家到博客园。

PictrueBox 控件的属性及用法

PictrueBox 控件的属性及用法

PictrueBox 控件PictrueBox 控件用于显示位图、GIF、JPEG、图元文件和图标格式的图形。

1、PictrueBox控件的属性下面对比较重要的属性进行详细的介绍。

(1)SizeMode属性:此属性用于设置PictrueBox控件将如何处理图像位置和大小。

语法:Public PictrueBoxSizeMode SizeMode(get;set;)属性值:PictrueBoxSizeMode值之一,默认为Normal。

PictrueBoxSizeMode是一个返回值,用来处理图像的位置和大小。

语法:Public Image Image(get;set;)属性值:要显示的Image。

2、PictrueBox控件常用方法下面对比较重要的方法进行详细介绍。

(1)CancelAsyncff飞:该方法主要用于取消异步图像加载。

语法:Public void CancelAsync()(2)Load方法:在PictrueBox中显示图像。

语法:Public void Load(string url)Load方法的语法中各参数的说明如下表:3、PictrueBox的事件下面详细介绍Click事件,该事件在单击图片时发生。

语法:Public event EventHandler click例如,当程序运行的时候,单击时钟图片,在窗体下方显示当前时间。

实例运行结果如图所示。

Click事件的使用程序主要代码如下:Private void pictureBox1_click (object sender,Eventargs e)Timer1.Interval=1000;Timer1.enabled=true;Private void timer1_Tick (object sender,Eventargs e)Label1.text=”现在时间:”+DateTime.now.Tostring();。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

picturemove(sender, e)
me.cursor = system.windows.forms.cursors.arrow
end sub
'根据偏移量计算出的图片位置,重画图片
private sub picturemove(byval sender as object, byval e as system.windows.forms.mouseeventargs)
dim mybit as new system.drawing.bitmap(picturebox1.image)
dim mypicgrh as system.drawing.graphics = me.picturebox1.creategraphics
dim m_mouseposx as integer
dim m_mouseposy as integer
dim m_driftx as integer
dim m_drifty as integer
并给赋初值,可以在form初始化时做
me.m_leftx = me.pictureboБайду номын сангаас1.location.x
me.m_lefty = me.picturebox1.location.y
定义处理鼠标按下的事件
'当鼠标按下时,将鼠标变成手形,并且记录下当前鼠标的位置
private sub picturebox1_mousedown(byval sender as object, byval e as system.windows.forms.mouseeventargs) handles picturebox1.mousedown
mypicgrh.clear(me.picturebox1.backcolor)
mypicgrh.drawimageunscaled(mybit, m_leftx - 152, m_lefty)
mybit.dispose()
private sub picturebox1_mouseup(byval sender as object, byval e as system.windows.forms.mouseeventargs) handles picturebox1.mouseup
me.cursor = system.windows.forms.cursors.hand
m_mouseposx = e.x
m_mouseposy = e.y
end sub
定义处理鼠标抬起的事件
'处理鼠标按键抬起的事件,根据鼠标按下时保存的鼠标位置,和当前鼠标的位置,计算鼠标移动偏移量,借此调用移动图片的函数,移动图片
m_driftx = m_mouseposx - e.x
m_drifty = m_mouseposy - e.y
m_leftx = m_leftx - m_driftx
m_lefty = m_lefty - m_drifty
中国最大的web开发资源网站及技术社区,
.net中picturebox中图片的拖动
首先在form窗体上放一个picturebox,并指定一个图片显示
定义一系列变量处理图片拖动
'处理图片拖动
private m_leftx as integer
private m_lefty as integer
mypicgrh.dispose()
end sub
相关文档
最新文档