资源简介
一个简单的通过在PictureBox控件内建立可移动的矩形选框裁剪图片的小程序
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace PicCut
{
public partial class MainWindow : Form
{
private const int AreaWidth = 512; //pictureBox控件的最大宽度
private const int AreaHeight = 384; //pictureBox控件的最大高度
//此宽高比为6:10,因具体需要而设,实际上可无高宽比限制
private Rectangle m_Rect; // 矩形选框,用于截取图片
private bool canMove = false; //指定鼠标移动事件是否需要响应
private int mouseLocationX = 0; //初始化鼠标当前X坐标
private int mouseLocationY = 0; //初始化鼠标当前Y坐标
private string picPath = null; //图片路径
public MainWindow()
{
InitializeComponent();
}
/*
* 图片裁剪方法
* param b:需裁剪的图片位图
* param StartX:裁剪起始X坐标
* param StartY:裁剪起始Y坐标
* param iWidth:裁剪宽度
* param iHeight:裁剪高度
* */
public static Bitmap KiCut(Bitmap b int StartX int StartY int iWidth int iHeight)
{
if (b == null)
{
return null;
}
int w = b.Width;
int h = b.Height;
if (StartX >= w || StartY >= h)
{
return null;
}
if (StartX + iWidth > w)
{
iWidth = w - StartX;
}
if (StartY + iHeight > h)
{
iHeight = h - StartY;
}
try
{
Bitmap bmpOut = new Bitmap(iWidth iHeight PixelFormat.Format24bppRgb);
Graphics g = Graphics.FromImage(bmpOut);
g.DrawImage(b new Rectangle(0 0 iWidth iHeight) new Rectangle(StartX StartY iWidth iHeight) GraphicsUnit.Pixel);
g.Dispose();
return bmpOut;
}
catch
{
return null;
}
}
/*
* 图片载入按钮单击事件响应
* */
private void load_Click(object sender EventArgs e)
{
using (OpenFileDialog openDlg=new OpenFileDialog())
{
openDlg.InitialDirectory = “.“;
openDlg.Filter = “JPG File(*.jpg)|*.jpg|JPEG File(*.jpeg)|*.jpeg|PNG File(*.png)|*.png|BMP File(*.bmp)|*.bmp“;
openDlg.RestoreDirectory = true;
openDlg.FileName = “sourcePic“;
if (openDlg.ShowDialog() == DialogResult.OK)
{
picPath = openDlg.FileName;
if (picPath != null && System.IO.File.Exists(picPath))
{
//根据图片原始
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-09-01 08:56 PicCut\
目录 0 2012-09-01 08:59 PicCut\PicCut\
文件 908 2012-09-01 08:56 PicCut\PicCut.sln
文件 35328 2012-09-01 19:48 PicCut\PicCut.v11.suo
文件 187 2012-09-01 08:56 PicCut\PicCut\App.config
目录 0 2012-09-01 08:59 PicCut\PicCut\bin\
目录 0 2012-09-01 18:32 PicCut\PicCut\bin\Debug\
文件 15872 2012-09-01 19:47 PicCut\PicCut\bin\Debug\PicCut.exe
文件 187 2012-09-01 08:56 PicCut\PicCut\bin\Debug\PicCut.exe.config
文件 30208 2012-09-01 19:47 PicCut\PicCut\bin\Debug\PicCut.pdb
文件 22984 2012-09-01 19:47 PicCut\PicCut\bin\Debug\PicCut.vshost.exe
文件 187 2012-09-01 08:56 PicCut\PicCut\bin\Debug\PicCut.vshost.exe.config
文件 490 2010-03-17 22:39 PicCut\PicCut\bin\Debug\PicCut.vshost.exe.manifest
目录 0 2012-09-01 08:59 PicCut\PicCut\bin\Release\
文件 14004 2012-09-01 19:47 PicCut\PicCut\MainWindow.cs
文件 6000 2012-09-01 18:42 PicCut\PicCut\MainWindow.Designer.cs
文件 5817 2012-09-01 18:42 PicCut\PicCut\MainWindow.resx
目录 0 2012-09-01 08:56 PicCut\PicCut\obj\
目录 0 2012-09-01 19:47 PicCut\PicCut\obj\Debug\
文件 1278 2012-09-01 18:32 PicCut\PicCut\obj\Debug\DesignTimeResolveAssemblyReferences.cache
文件 6835 2012-09-01 08:59 PicCut\PicCut\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 569 2012-09-01 19:47 PicCut\PicCut\obj\Debug\PicCut.csproj.FileListAbsolute.txt
文件 980 2012-09-01 18:42 PicCut\PicCut\obj\Debug\PicCut.csproj.GenerateResource.Cache
文件 2143 2012-09-01 09:09 PicCut\PicCut\obj\Debug\PicCut.csprojResolveAssemblyReference.cache
文件 15872 2012-09-01 19:47 PicCut\PicCut\obj\Debug\PicCut.exe
文件 180 2012-09-01 18:42 PicCut\PicCut\obj\Debug\PicCut.MainWindow.resources
文件 30208 2012-09-01 19:47 PicCut\PicCut\obj\Debug\PicCut.pdb
文件 180 2012-09-01 09:09 PicCut\PicCut\obj\Debug\PicCut.Properties.Resources.resources
文件 0 2012-09-01 08:56 PicCut\PicCut\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
文件 0 2012-09-01 08:56 PicCut\PicCut\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
文件 0 2012-09-01 08:56 PicCut\PicCut\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
............此处省略9个文件信息
相关资源
- c# GDI+画图用鼠标绘制直线、矩形、椭
- winform图片标尺,画矩形
- C#带背景绘图拖鼠标画矩形和直线
- c#在pictureBox控件上绘制矩形框,鼠标
- C# 显示图片并且可以缩放和描绘矩形
- 用c#实现画图功能可以画出各种图形,
- C# 绘图 矩形 椭圆 直线 曲线 带控制点
- 鼠标画框矩形裁剪图片工具含源码及
- 用c#实现窗体绘制椭圆,圆,矩形
- c#绘图板源码直线,矩形,圆形,填充
- c#绘制矩形(鼠标拉伸与平移)
- 批量裁剪图片
- C# 编写的绘图板(可绘了直线,矩形
- c# 绘制3D可旋转旋转矩形
- c# GDI+ 实现类似画图板的效果,有画矩
- 用C#做的一个画图板工具,可以打开图
- 矩形域的最小二乘曲面拟合
- C#中在picturebox中实时画矩形框
- C#利用GDI+绘制旋转文字,矩形内可以
- C#鼠标画多边形和矩形
- C# winform GDI 绘图板 源码 可实现铅笔绘
- .net core计算矩形面级
- 123123 C#写的绘图板
- 绘图板C#源程序可绘制直线,矩形,圆
- C# 绘制圆形、矩形、三角形
- C# 简单地在WinForm上放置一个有阴影边
- 计算两个矩形矩阵的乘积
- C# 透明窗体桌面画图(矩形框选)
- 选择任意位置矩形 截图 并保存至本地
- C# 绘制直线/圆形/矩形 (Graphics)
评论
共有 条评论