C#实现图片切割的方法
作者:JoeBlackzqq 发布时间:2022-02-25 22:17:56
标签:C#,图片,切割
本文实例讲述了C#实现图片切割的方法。分享给大家供大家参考,具体如下:
图片切割就是把一幅大图片按用户要求切割成多幅小图片。dotnet环境下系统提供了GDI+类库,为图像操作处理提供了方便的接口。
下面是图像切割小程序:
public class ImageManager
{
/// <summary>
/// 图像切割
/// </summary>
/// <param name="url">图像文件名称</param>
/// <param name="width">切割后图像宽度</param>
/// <param name="height">切割后图像高度</param>
/// <param name="savePath">切割后图像文件保存路径</param>
/// <param name="fileExt">切割后图像文件扩展名</param>
public static void Cut(string url, int width, int height,string savePath,string fileExt,string logofile)
{
Bitmap bitmap = new Bitmap(url);
Decimal MaxRow = Math.Ceiling((Decimal)bitmap.Height / height);
Decimal MaxColumn = Math.Ceiling((decimal)bitmap.Width / width);
for (decimal i = 0; i < MaxRow; i++)
{
for (decimal j = 0; j < MaxColumn; j++)
{
string filename = i.ToString() + "," + j.ToString() + "." + fileExt;
Bitmap bmp = new Bitmap(width, height);
for (int offsetX = 0; offsetX < width; offsetX++)
{
for (int offsetY = 0; offsetY < height; offsetY++)
{
if (((j * width + offsetX) < bitmap.Width) && ((i * height + offsetY) < bitmap.Height))
{
bmp.SetPixel(offsetX, offsetY, bitmap.GetPixel((int)(j * width + offsetX), (int)(i * height + offsetY)));
}
}
}
Graphics g = Graphics.FromImage(bmp);
g.DrawString("脚本之家", new Font("黑体", 20), new SolidBrush(Color.FromArgb(70, Color.WhiteSmoke)), 60, height/2);//加水印
ImageFormat format = ImageFormat.Png;
switch (fileExt.ToLower())
{
case "png":
format = ImageFormat.Png;
break;
case "bmp":
format = ImageFormat.Bmp;
break;
case "gif":
format = ImageFormat.Gif;
break;
}
bmp.Save(savePath+"//" + filename,format);
}
}
}
}
程序员只需要调用Cut函数就可以应用了。
希望本文所述对大家C#程序设计有所帮助。


猜你喜欢
- try catch finally组合:检测异常,并传递给catch处理,并在finally中进行资源释放。try catch组合 : 对代
- 原由移动开发中,随着项目不断的跌代,需求越来越复杂后。项目工程也越来越庞大。那么此时的分module的开发,则是必然的选择了。在最终的组件化
- 业务场景:调用同步接口获取当前全部有效账户,数据库已存在部分账户信息,因此需要筛选同步接口中已存在本地的帐户。调用接口获取的数据集合List
- 访问静态资源遇到的坑及解决开始是以这种结构进行的,结果页面上一篇红,访问的页面是这样的最终找出来问题,虽然每次调整路径都不对,最终查看多种方
- 404这个错误真的是一言难尽!不过大多是配置文件出错,认真修改还是可以的1.web.xml配置错误:默认首页没有写的,在web.xml添加一
- 一、返回一般数据类型比如要根据 id 属性获得数据库中的某个字段值。mapper 接口:// 根据 id 获得数据库中的 username
- 高斯模糊是什么?高斯模糊(英语:Gaussian Blur),也叫高斯平滑,是在Adobe Photoshop、GIMP以及Paint.NE
- 在winform里拖入一个datagridview控件,跟一个openfiledialog控件using System;using Syst
- 实现步骤step1:添加乐观锁 * MP的其他 * 功能可以参考官网@Beanpublic MybatisPlusInterceptor m
- 本文实例为大家分享了使用的是iTextSharp添加PDF水印的具体代码,供大家参考,具体内容如下需要iTextSharp.dll, 下载地
- 通过javamail 实现发送邮件,供大家参考,具体内容如 * 意:服务器有些端口是没有开放的 需要去开放端口。 有些邮箱是需要开启对应授权服
- 本文实例讲述了C#取得随机颜色的方法。分享给大家供大家参考。具体实现方法如下:public string GetRandomColor(){
- 本文实例讲述了Java基于动态规划法实现求最长公共子序列及最长公共子字符串。分享给大家供大家参考,具体如下:动态规划法经常会遇到复杂问题不能
- 线性布局(LinearLayout)名字含义android:id设置一个id方便使用android:layout_width宽度androi
- 一、创建springboot项目(采用骨架方式)创建完成;我们分析下pom文件中内容:所使用到的关键依赖: <!--springBoo
- java中this与super关键字的使用方法这几天看到类在继承时会用到this和super,这里就做了一点总结,与各位共同交流,有错误请各
- 前言同C语言一样,Java也有断言关键字assert,它们的用法也比较相似。注意:Java的断言是从1.4版本开始的,以前的版本不支持断言。
- 本文实例为大家分享了Android 自定义弹窗提示的具体代码,供大家参考,具体内容如下Java文件:private void showSet
- java使用HttpClient调用接口HttpClient 提供的主要的功能(1)实现了所有 HTTP 的方法(GET,POST,PUT,
- 效果自定义密码输入框,项目的一个界面需求,我把这个自定义的输入框提取出来作为这次内容的题目。输入前: 输入后: 输入1个