C#裁剪图片
标签:box 名称 white mod 一个 ima int text button
具体啥的,我也不懂,就知道这样是可以的。等有空了再研究吧。
功能是:裁剪图片,但保持图片原来的大小,被裁剪的区域用指定的颜色(白色)来填充,然后保存到另一个新的文件夹里,名称不改变。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
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 WFImg
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
FolderBrowserDialog dialog = new FolderBrowserDialog();
dialog.Description = "请选择文件路径";
if (dialog.ShowDialog() == DialogResult.OK)
{
string foldPath = dialog.SelectedPath;
this.textBox1.Text = foldPath;
}
}
///
/// 剪裁
///
/// 原始Bitmap
/// 开始坐标X
/// 开始坐标Y
/// 宽度
/// 高度
/// 剪裁后的Bitmap
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);//裁剪成小一号的图片
Bitmap bmpOut = new Bitmap(w, h, PixelFormat.Format24bppRgb);//保持原大小,裁剪部分用指定的颜色填充
Graphics graphics = Graphics.FromImage(bmpOut);
graphics.Clear(Color.White);//裁剪部分用指定的颜色填充
graphics.DrawImage(b, new Rectangle(StartX, StartY, iWidth, iHeight), new Rectangle(StartX, StartY, iWidth, iHeight), GraphicsUnit.Pixel);
graphics.Dispose();
return bmpOut;
}
catch
{
return null;
}
}
private void button2_Click(object sender, EventArgs e)
{
int leftSize = Convert.ToInt32(txtLeft.Text);
int topSize = Convert.ToInt32(txtTop.Text);
int bottomSize = Convert.ToInt32(txtBottom.Text);
int rightSize = Convert.ToInt32(txtRight.Text);
string foldPath = textBox1.Text;
string newPath = foldPath + "_new";
if (!Directory.Exists(newPath))
{
Directory.CreateDirectory(newPath);
}
//循环该目录下的文件
DirectoryInfo dir = new DirectoryInfo(foldPath);
FileInfo[] files = dir.GetFiles();
int fcount = files.Count();
if (fcount > 0)
{
for (int i = 0; i )
{
FileInfo file = files[i];
Bitmap map = new Bitmap(file.FullName);
int width = map.Width;
int height = map.Height;
map = KiCut(map, leftSize, topSize, width - rightSize - leftSize, height - bottomSize - topSize);
map.Save(newPath + "\\" + file.Name);
label6.Text = "执行结果:成功" +(i + 1) +"个";
}
}
}
}
}
界面就是这个鸟样子:
上下左右都是像素值。
C#裁剪图片
标签:box 名称 white mod 一个 ima int text button
原文地址:http://www.cnblogs.com/xsj1989/p/7814349.html
文章来自:
搜素材网的
编程语言模块,转载请注明文章出处。
文章标题:
C#裁剪图片
文章链接:http://soscw.com/index.php/essay/80210.html
评论