C# 切分图片
public void Slice()
{
// 图片路径
var file = "F;/aaa.png";
// 水平切分
int horizontal = ;
// 纵向切分
int vertical = ;
for (int i = ; i < horizontal * vertical; i++)
{
using (Image image = Image.FromFile(file, true))
{
// 每一块的高
int s_h = image.Height / horizontal;
// 每一块的宽
int s_w = image.Width / vertical;
// 整除判断自己加吧,懒得写了 /*
0,0 ; 1,0 ; 2,0 ; 3,0
0,1 ; 1,1 ; 2,1 ; 3,1
0,2 ; 1,2 ; 2,2 ; 3,2
0,3 ; 1,3 ; 2,3 ; 3,3
*/
// 左上角为0,0
var rect = new Rectangle();
rect.X = i % vertical * s_w;
rect.Y = i / horizontal * s_h;
rect.Width = s_w;
rect.Height = s_h;
CutForCustom(image, "xxx"+i+".png", rect);
}
}
} /// <summary>
/// 切图
/// </summary>
/// <param name="image">图源</param>
/// <param name="fileSaveUrl">要保存的文件名</param>
/// <param name="rect">位置大小</param>
public void CutForCustom(Image image, string fileSaveUrl, Rectangle rect)
{
var templateImage = new Bitmap(image);
var bitCrop = templateImage.Clone(rect, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
bitCrop.Save(fileSaveUrl);
bitCrop.Dispose();
templateImage.Dispose();
image.Dispose();
}
具体文件怎么来就随意了。如果切分的块数不能整除也可以,只是会丢失,自己补足一下会更复杂了
C# 切分图片的更多相关文章
- GIMP 一键均匀添加多条参考线 一键均匀切分图片
添加参考线 #!/usr/bin/env python2 # -*- coding: utf-8 -*- from gimpfu import * # orientation: ORIENTATION ...
- Qt中用QSS切分图片
Qt设计时有时需要实现动态按钮,按钮点击时一个状态,鼠标悬浮时一个状态,离开时一个状态,静止时一个状态.可以用一张png长图,使用QSS分段截取,分配给每一个状态. 1.调用函数 SetButt ...
- 多个图标图片(雪碧图)使用CSS样式显示
现在的网页中显示很多图标算是常态,发现项目中页面上用到的图标都是单个图标单个文件,用的时候直接往页面上挂,这确实很常态. 如果,网站是挂在外网上,或者网速过低,又大量使用图标的情况下,由于浏览器和服务 ...
- python实现读取并显示图片的两种方法
https://www.cnblogs.com/lantingg/p/9259840.html 在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片. ...
- 网页中多个图标在一张图片上,使用css将各图标显示
现在的网页中显示很多图标算是常态,发现项目中页面上用到的图标都是单个图标单个文件,用的时候直接往页面上挂,这确实很常态. 如果,网站是挂在外网上,或者网速过低,又大量使用图标的情况下,由于浏览器和服务 ...
- IOS 2D游戏开发框架 SpriteKit
最近发现Xcode自带的2D游戏开发框架SpriteKit可以直接引入到APP中进行混合开发,这就是说可以开发出既带业务应用又带游戏的苹果APP,咋怎么觉得这是一个自己的小发现....呵呵....., ...
- CSS 有趣的边框
今天看到一篇文章.是利用CSS边框来做折纸效果.感觉非常有意思.于是就对CSS的border研究了一下.发现还真有一些好玩的使用方法. 1.border折纸效果 首先是HTML代码,为了简单,就一个d ...
- CoCos2dx开发:tile地图绘制和Tiled工具的基本使用
1.新建地图: 在Tiled工具里新建文件: 设置地图的地图大小和地图块大小: 新建好的空文件如下: 2.绘制图块: 在Aseprite中建立相应大小(注意:划分的图块为32*32,因此图片大小最好与 ...
- 数据分析之numpy模块
numpy(numerical python)是python语言的一个扩展程序库,支持大量的维度数组和矩阵运算,此外也针对数组提供大量的数学函数库. 一.创建数组 1 使用array()创建 impo ...
随机推荐
- TCP/IP OPTION字段
0x01 简介 TCP头部和IPV4头部除了固定的20字节外,都设置了 OPTION 字段用于存储自定义的数据,因为TCP头部和IPV4的报文长度字段均为4字节,所表示的最大值为15, 乘4,报文头部 ...
- gateway 配置
server: port: spring: application: name: api-gateway eureka: client: service-url: defaultZone: http: ...
- ALV屏幕捕捉回车及下拉框事件&ALV弹出框回车及下拉框事件
示例展示: 屏幕依据输入的物料编码或下拉框物料编码拍回车自动带出物料描述: 点击弹出框,输入物料编码拍回车带出物料描述,点击确认,更新ALV: 1.创建屏幕9000,用于处理ALV弹出框: 2.针对屏 ...
- 查询数据库游标使用情况以及sql
----查询游标使用情况以及游标最大数---- SELECT MAX(A.VALUE) AS HIGHEST_OPEN_CUR, P.VALUE AS MAX_OPEN_CUR FROM V$SESS ...
- IIC_slaver 仿真错误
integer 类型不能直接赋值. 改正之后的代码
- linux-docker下安装禅道全部
友情提示:按照步骤走,99%的人会安装成功,1%的人可以咨询度娘 64位电脑安装禅道,满足发送邮件功能 第一步: docker ps 查看docker中的容器是否有禅道(docker ps -a ...
- ABP vue+asp.net core yarn serve报 Cannot find module 'typescript/package.json错误
abp的前端在node install 安装完成了相关的依赖包,直接yarn serve运行相关服务的时候报"Cannot find module 'typescript/package.j ...
- asp.net 获取 repeater checkbox 值
webform中获取repeat控件列表下的checkbox选中的值: 码农上代码: public static string getSelectedIDs(Repeater Rpt_) { stri ...
- [工作日志] 2019-04-16 入参是list
入参 {"vehicleList":[{"vehicleNo":"赣K81057","plateColor":" ...
- 配置两个Hadoop集群Kerberos认证跨域互信
两个Hadoop集群开启Kerberos验证后,集群间不能够相互访问,需要实现Kerberos之间的互信,使用Hadoop集群A的客户端访问Hadoop集群B的服务(实质上是使用Kerberos Re ...