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 ...
随机推荐
- Python正则表达式的re库一些用法(上)
1.查找文本中的模式 search()函数取模式和要扫描的文本作为输入,找到这个模式时就返回一个match对象.如果没有找到模式,search()就返回None. 每个match对象包含有关匹配性质的 ...
- Quartz定时任务封装
一般的系统都会有一些定时任务,那么我们将这个定时任务封装起来,只要系统需要添加定时任务时,只需调用此方法传入所需要的值即可完成定时任务. 自己自学整理的一些随笔 1.首先对周期粒度进行封装 publ ...
- 接口自动化测试遭遇问题,excel中取出来的json串,无法使用requests去请求解决办法
最近遭遇了一个问题,问题不大不小,想半天没想明白是哪里有问题,今天终于解决了 用python读取了excel用例中,body json字符串内容,然后requests去请求内容,结果一直报错,一直不明 ...
- Oracle数据库表的一些宏处理
比如现在,有个数据库表,我想要知道这个数据库已经建了多少张表?每个表有多少条数据?每个表都有哪些字段?以及字段的说明? 下面就用SQL一一解决上面的问题: --所有已存在的表名和说明 select t ...
- Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 阅读笔记
Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks (使用循环一致的对抗网络的非配对图像-图 ...
- Hyperledger Fabric 架构梳理
区块链的数据结构 State数据结构 由peer维护,key/value store Ledger 记录了所有成功和不成功的状态更新交易.Ledger被ordering service构造,是一个全 ...
- Java垃圾回收机制和注解
- matlab json文件解析 需要下载一个jsonlab-1.5
% facebookX24.m clc; addpath('C:\Program Files\MATLAB\R2015b\toolbox\jsonlab-1.5'); % read .json jso ...
- nginx——优化 Nginx access 日志
1. 配置日志切割 #!/bin/bash savepath_log='/usr/local/clogs' nglogs='/usr/local/nginx/logs' mkdir -p $savep ...
- springboot +redis配置
springboot +redis配置 pom依赖 <dependency> <groupId>org.springframework.boot</groupId> ...