博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
csharp .net vb 复制图像
阅读量:5244 次
发布时间:2019-06-14

本文共 2535 字,大约阅读时间需要 8 分钟。

.NET Compact Framework 不支持  方法,可是仍能够复制图像和图像的某些部分。以下的演示例子演示怎样运行以下操作:

  • 定义一个方法以创建位图。

  • 定义一个重载方法以复制位图或位图的一部分。

  • 通过重写窗口的  方法来调用这些方法并向屏幕绘制图像。

创建位图

  • 此方法创建一个位图以进行演示。

C#
 
// Creates a bitmap for copying.private Bitmap CreateBitmap(int sideSize){    Bitmap bmp = new Bitmap(sideSize, sideSize);    Graphics g = Graphics.FromImage(bmp);    g.FillEllipse(new SolidBrush(Color.Red), 0, 0, sideSize, sideSize);    g.DrawLine(new Pen(Color.Black), 0, 0, sideSize, sideSize);    g.DrawLine(new Pen(Color.Black), sideSize, 0, 0, sideSize);    g.Dispose();    return bmp;}

克隆位图

  • 此方法重载採用源位图作为參数并将该位图作为副本返回。

C#
 
// Copies the entire bitmap.protected Bitmap CopyBitmap(Bitmap source){    return new Bitmap(source);}

复制位图的一部分

  • 此方法重载採用  作为參数以确定要返回的位图部分的尺寸。

C#
 
// Copies a part of a bitmap.protected Bitmap CopyBitmap(Bitmap source, Rectangle part){    Bitmap bmp = new Bitmap(part.Width, part.Height);    Graphics g = Graphics.FromImage(bmp);    g.DrawImage(source,0,0,part,GraphicsUnit.Pixel);    g.Dispose();    return bmp;}

创建、复制和绘制位图

  • 此  方法重载调用方法创建一个位图,然后克隆并复制该位图的一部分。此方法也能够将克隆的位图保存到一个文件里。

C#
 
// Draws the bitmaps on the form.   protected override void OnPaint(PaintEventArgs e){    Font arialFont;    Brush blackBrush;    arialFont = new Font("Arial", 10, FontStyle.Regular);    blackBrush = new SolidBrush(Color.Black);    // Set the size of the sides of the bitmap,    // and get one-third of it for the center bitmap.    int sidesize = 75;    int third = (int) sidesize/3;    // Create bitmap.    source = CreateBitmap(sidesize);    // Copy entirely as a clone.    clone = CopyBitmap(source);    // Copy the center part of the bitmap.    center = CopyBitmap(source, new Rectangle(third, third, third, third));    // Save the bitmap to a file.    clone.Save("newbitmap.bmp", ImageFormat.Bmp);    // Draw the source, clone, and partial     // bitmaps vertically down the screen.     int y = 10;    e.Graphics.DrawString("source bitmap:", arialFont, blackBrush, 10, y);    y += 20;    e.Graphics.DrawImage(source, 10, y);    y += source.Height + 10;    e.Graphics.DrawString("clone bitmap:", arialFont, blackBrush, 10, y);    y += 20;    e.Graphics.DrawImage(clone, 10, y);    y += clone.Height + 10;    e.Graphics.DrawString("center part of bitmap:", arialFont, blackBrush, 10, y);    y += 20;    e.Graphics.DrawImage(center, 10, y);    y += center.Height + 10;    // Dispose graphic objects.    arialFont.Dispose();    blackBrush.Dispose();}
 

此演示例子须要引用以下的命名空间:

 

注意, 和  对象在  方法重载中显式释放。由  对象的  属性返回的  对象将由垃圾回收器销毁,不须要显式释放。

 

其它资源

转载于:https://www.cnblogs.com/mfryf/p/3622331.html

你可能感兴趣的文章
条件断点 符号断点
查看>>
水平垂直居中
查看>>
MySQL简介
查看>>
设计模式之桥接模式(Bridge)
查看>>
jquery的$(document).ready()和onload的加载顺序
查看>>
Python Web框架Django (五)
查看>>
.net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串------(转)...
查看>>
【codevs1033】 蚯蚓的游戏问题
查看>>
【程序执行原理】
查看>>
python的多行注释
查看>>
连接Oracle需要jar包和javadoc文档的下载
查看>>
UVA 10976 - Fractions Again?!
查看>>
Dreamweaver cc新版本css单行显示
查看>>
【android】安卓的权限提示及版本相关
查看>>
JavaScript可否多线程? 深入理解JavaScript定时机制
查看>>
IOS基础学习
查看>>
PHP 导出 Excell
查看>>
Java基础教程——网络基础知识
查看>>
Kruskal基础最小生成树
查看>>
浅谈算法和数据结构: 一 栈和队列
查看>>