精华内容
下载资源
问答
  • c#picturebox
    2022-03-17 15:23:32

    1.一个小问题困扰了很久,分享出来,让大家不要再犯错!

    对于picturebox控件,他的回收机制,是在你一段时间没有调用后,会回收,但只要有一个调用的地方还在运行,都不会去回收,这次你再刷新图片,内存会蹭蹭蹭的上去!

    解决方法如下:

             

               if (Picturebox.Image != null)//判断有无图片,有图片执行释放
                { 

                     Picturebox.Image.Dispose();//释放图片

                }
                else
                {     

                    Picturebox.Image=S1;//S1为输入的图片,这个时候可以显示

                }    

    更多相关内容
  • 重写pictureBox相关事件,支持在pictureBox上绘制多矩形框 ,以及选中绘制框,选中后支持边框拉伸。
  • C# PictureBox显示图片(图像操作)
  • c# picturebox使用方法 优化界面显示
  • Picture Box写的GDI绘图自定义图表控件库,可自定义修改图表显示细节、效率,制作自己的图标显示控件
  • C# PictureBox 显示图像的两种方式测试demo
  • C# PictureBox图片放大缩小、旋转、打印等
  • visual studio2010,DEMO,完整源码,适用于接收QQ截图等截图软件到PictureBox,鼠标拖拽图片到PictureBox
  • C#编写的winfrom项目,使用 pictureBox 读取显示 Raw格式图片,并附带一张raw示例图片。
  • c# picturebox控件的使用方法介绍。模拟常用的收藏功能。
  • 本文实例为大家分享了C# picturebox实现图像拖拽和缩放的具体代码,供大家参考,具体内容如下 1.核心步骤: ①新建Point类型全局变量mouseDownPoint,记录拖拽过程中鼠标位置; ②MouseDown事件记录Cursor位置; ③...
  • C# pictureBox 显示PGM图片
  • C# PictureBox 图片自适应

    千次阅读 2021-01-05 10:35:31
    C# PictureBox 图片自适应 PictureBox设置图片 this.pictureBox1.BackgroundImageLayout = ImageLayout.Stretch; this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;

    C# PictureBox 图片自适应

    PictureBox设置图片

    this.pictureBox1.BackgroundImageLayout = ImageLayout.Stretch;
    this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
    
    展开全文
  • C# PictureBox对显示的图像实现 像素的修改方式1. 使用函数修改2. 内存的方式修改3. form1的完整代码参考 介绍了两个方式去操作pictureBox 使用函数修改 使用内存的方式去修改 函数的方式适合初始化图片,通过函数...

    C# PictureBox对显示的图像实现 像素的修改方式

    介绍了两个方式去操作pictureBox

    1. 使用函数修改
    2. 使用内存的方式去修改

    函数的方式适合初始化图片,通过函数生成一个基础的图像,才能在内存中有文件信息。从而再去操作其图像

    1. 使用函数修改

            private void Pixel_Click()
            {
    
                System.Drawing.Bitmap curBitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb) ;
                for (int i = 0; i < pictureBox1.Width; i++)
                {
                    for(int j = 0; j < pictureBox1.Height; j++)
                    {
                        // newImg.SetPixel(i, j,Color.Black);//直接给黑色
                        //通过RGB的方式给颜色
                        curBitmap.SetPixel(i, j, Color.FromArgb(255, 255, 255));
                    }
                }
                pictureBox1.Image = curBitmap;
            }
    

    2. 内存的方式修改

            //使用memory的方式去显示图片,刷新小像素的时候比较好,刷新6K*4K 的时候还是可以感受到明显的延迟
            //通过地址的方式读取数据,只能更改图片,不能创建图片。
            private void memory_1Chick(Bitmap bmp)
            {
                if(bmp != null)
                {
                    //转换格式
                    BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
                    IntPtr ptr = bmpData.Scan0; //获得图像的地址
    
                    //定义一个数组 ,得到长度
                    int bytes = bmp.Width * bmp.Height * 3;//24 bit bmp picture
                    //int bytes = 200 * 200 * 3;
                    
                    byte[] rgbValues = new byte[bytes]; 
    
                    System.Runtime.InteropServices.Marshal.Copy(ptr, rgbValues, 0, bytes);
    
                    double colorTemp = 0;
                    for(int i = 0; i < rgbValues.Length; i += 3)
                    {
                        //colorTemp = rgbValues[i + 2] * 0.299 + rgbValues[i + 1] * 0.587 + rgbValues[i] * 0x114;
                        //RGB = color
                        rgbValues[i] = rgbValues[i+1] = rgbValues[i + 2] = (byte)(10 * number11); 
    
                    }
    
                    System.Runtime.InteropServices.Marshal.Copy(rgbValues,0,ptr,bytes);
                    bmp.UnlockBits(bmpData);  
                    //Invalidate();   //跟新像素,没有起到效果
    
                }
    
            }
    

    3. form1的完整代码参考

    实现了打开应用的时候对picturebox初始化,初始化完成之后按按键,每次都会有颜色的变化,因为rgb三个都是相同值,所以显示的是不同颜色的灰色。

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Diagnostics;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace WindowsFormsApp1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                Pixel_Click();
            }
            byte number11 = 0;
    
    
    
            private void button1_Click(object sender, EventArgs e)
            {
    
                number11 ++;
                label1.Text = number11.ToString();
                string path = "111.JPG";
    
                
    
                Image img = this.pictureBox1.Image;
    
                Debug.Write(pictureBox1.Width + "width\n");
                Debug.Write(pictureBox1.Height+ "Height\n");
    
                Bitmap bitmap = new Bitmap(img);
                memory_1Chick(bitmap);
                pictureBox1.Image = bitmap;
            }
    
    
    
            private void Pixel_Click()
            {
    
                System.Drawing.Bitmap curBitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb) ;
                for (int i = 0; i < pictureBox1.Width; i++)
                {
                    for(int j = 0; j < pictureBox1.Height; j++)
                    {
                        // newImg.SetPixel(i, j,Color.Black);
                        curBitmap.SetPixel(i, j, Color.FromArgb(255, 255, 255));
                    }
                }
                pictureBox1.Image = curBitmap;
            }
    
    
    
            //使用memory的方式去显示图片,刷新小像素的时候比较好,刷新6K*4K 的时候还是可以感受到明显的延迟
            //通过地址的方式读取数据,只能更改图片,不能创建图片。
            private void memory_1Chick(Bitmap bmp)
            {
                if(bmp != null)
                {
                    //转换格式
                    BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
                    IntPtr ptr = bmpData.Scan0; //获得图像的地址
    
                    //定义一个数组 ,得到长度
                    int bytes = bmp.Width * bmp.Height * 3;//24 bit bmp picture
                    //int bytes = 200 * 200 * 3;
                    
                    byte[] rgbValues = new byte[bytes]; 
    
                    System.Runtime.InteropServices.Marshal.Copy(ptr, rgbValues, 0, bytes);
    
                    double colorTemp = 0;
                    for(int i = 0; i < rgbValues.Length; i += 3)
                    {
                        //colorTemp = rgbValues[i + 2] * 0.299 + rgbValues[i + 1] * 0.587 + rgbValues[i] * 0x114;
                        //RGB = color
                        rgbValues[i] = rgbValues[i+1] = rgbValues[i + 2] = (byte)(10 * number11); 
    
                    }
    
                    System.Runtime.InteropServices.Marshal.Copy(rgbValues,0,ptr,bytes);
                    bmp.UnlockBits(bmpData);  
                    //Invalidate();   //跟新像素,没有起到效果
    
                }
    
            }
    
    
            //功能:输入图片路径,读成byte数据
            //参数是图片的路径
            public byte[] GetPictureData(string imagePath)
            {
                FileStream fs = new FileStream(imagePath, FileMode.Open);
                byte[] byteData = new byte[fs.Length];
                fs.Read(byteData, 0, byteData.Length);//读内存
                fs.Close();
                return byteData;
            }
    
    
            //写函数
            //功能:输入byte 数据,输出image数据
            //
            //
            //问题:输入byte数据的格式
    
            public System.Drawing.Image ReturnPhoto(byte[] streamByte)
            {
                System.IO.MemoryStream ms = new System.IO.MemoryStream(streamByte);
                System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
                return img;
            }
    
            private void pictureBox1_Click(object sender, EventArgs e)
            {
    
            }
        }
    }
    
    
    展开全文
  • C# PictureBox设置图片

    2021-01-04 17:40:35
    C# PictureBox设置图片 1、网上图片 this.pictureBox1.ImageLocation = @"https://img-blog.csdnimg.cn/2020070316210530.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_20,text_aHR0cHM6Ly9...

    C# PictureBox设置图片

    1、网上图片

    this.pictureBox1.ImageLocation = @"https://img-blog.csdnimg.cn/2020070316210530.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_20,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NzZG5fd3V3dA==,size_86,color_444444,t_70#pic_center";
    

    2、本地图片

    this.pictureBox1.ImageLocation = @"D:/csdn_wuwt.png";
    
    展开全文
  • pictureBox 操作图片 被占用,解决方法 提示:此处是因为 重复操作 路径下的 图片,导致图片占用。 使用流的方法展示图片,就算图片被删除 仍会显示: FileStream fileStream = new FileStream(url, FileMode.Open...
  • 1,从项目资源文件中加载图片,首先将图片添加到项目资源中(工程项目下 - Properties 下双击Resources.resx进行添加资源) this.pictureBox1.Image = xxx.Properties.Resources.Penguins; 2,从窗体资源文件中加载...
  • C# pictureBox控件开打和另存为图像(含源码) 简单的开打图像和另存为。
  • C#pictureBox滚轮缩放与拖拽

    千次阅读 2021-03-03 16:31:48
    及缩放picturebox控件,该图片控件缩放的最大范围为其依赖的panel(或者其他)控件决定。 1.通过鼠标滚轮事件MouseWheel进行缩放,往前滚动为放大,往后滚动为缩小。每次滚动的数值随着滚动方向,正负号不同。所以...
  • Windform c# pictureBox 更换背景图片 先初始化pictureBox的背景图片,想换背景图片,通过点击pictureBox控件区域换图片,再次打开程序背景图片是上次更换的图片 实现: 初始化pictureBox的背景图片的路径在工程下是...
  • HOperatorSet.OpenWindow(0,0,pictureBox1.Width,pictureBox1.Height,pictureBox1.Handle,"","",out window); HDevWindowStack.Push(window); } private void button1_Click(object sender, EventArgs e) { string ...
  • VS-C# 系列:所有相关C#文章链接. bat 系列:所有相关bat文章链接. OpenCV 系列:所有相关OpenCV文章链接. Keil 系列:所有相关文章链接 所有内容均以最小系统调试成功;逐步提供低分源码工程下载! 保证每行代码都...
  • c#PictureBox控件旋转图片

    千次阅读 2020-04-15 15:22:33
    使用Bitmap中的RotateFlip()方法 //旋转图片 private void pictureBox_Probe_Click(object sender, EventArgs e) { Bitmap b = new Bitmap(pictureBox_Probe.Image); b.RotateFlip(R...
  • C# picturebox画图问题

    千次阅读 2020-12-23 16:28:31
    做一个有类似画图板的界面(部分功能)操作鼠标,在picturebox的图片上,画线,且能够保存。当前已经可以画线,但是出了一点问题。按下鼠标左键,拉动鼠标,没有先出现,放开鼠标左键,还是没有线,最后在picturebox上...
  • C# PictureBox 放大、缩小、移动图片 class PictureBoxEx { private static bool isMove = false; private static Point mouseDownPoint; private static int zoomStep = 30; public static int ZoomStep ...
  • C# picturebox 控件画图

    万次阅读 多人点赞 2019-07-18 21:47:02
    今天介绍一下 C#picturebox 画坐标系 编译环境:VS2010 1.首先建立一个 Windows窗体应用程序 如下图1所示 建好后,就会出现一个窗体设计界面,可以在属性栏更改其名字,图标,Text……如下图2所示: 2.添加...
  • C#操作picturebox实现图片的放大和缩小以及显示实时坐标,可以自行在此增加某一点的灰度值显示
  • VS-C# 系列:所有相关C#文章链接. bat 系列:所有相关bat文章链接. OpenCV 系列:所有相关OpenCV文章链接. Keil 系列:所有相关文章链接 所有内容均以最小系统调试成功;逐步提供低分源码工程下载! 保证每行代码都...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,874
精华内容 4,749
关键字:

c#picturebox

c# 订阅