【C#】制作图集

如题目,用好几个图片拼在一个大图里,博主是用于Unity游戏开发使用的,话不多说,上代码!

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;namespace EffectsPackTool.Common
{/// <summary>/// 图集处理共通方法/// </summary>public static class SpriteSheet{/// <summary>/// 创建图集/// </summary>/// <param name="imagePaths">图片地址集</param>/// <param name="outputPath">输出路径</param>/// <param name="maxWidth">画布最大宽度</param>/// <param name="maxHeight">画布最大高度</param>/// <param name="imageMaxHeight">图片最大高度</param>public static bool CreateSpriteSheet(IEnumerable<string> imagePaths, string outputPath, int maxWidth, int maxHeight, int imageMaxHeight){try{using (Bitmap spriteSheet = new Bitmap(maxWidth, maxHeight)){using (Graphics g = Graphics.FromImage(spriteSheet)){g.Clear(Color.Transparent); // 如果需要透明背景可以设置int currentHeight = 0;int currentWidth = 0;foreach (string imagePath in imagePaths){using (Image image = Image.FromFile(imagePath)){// 检查是否超出最大宽度,如果是,则移至下一行if (image.Width + currentWidth > maxWidth){currentHeight += imageMaxHeight;currentWidth = 0;}// 绘制图像到sprite sheetg.DrawImage(image, new Point(currentWidth, currentHeight));// 更新当前宽度currentWidth += image.Width;}}}// 保存sprite sheet到指定路径spriteSheet.Save(outputPath, ImageFormat.Png);}return true;}catch (Exception ex){return false;}}}
}

没什么好说的 拿去直接用就行

完结!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/36806.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot中的安全性配置详解

Spring Boot中的安全性配置详解 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨如何在Spring Boot应用中实现全面的安全性配置&#xff0c;保…

LED裸眼3D显示屏:开启视觉新体验

随着科技的不断进步&#xff0c;LED显示屏作为一种新型的显示技术&#xff0c;已经被广泛应用于各个领域。而其中&#xff0c;LED裸眼3D显示屏更是因其独特的技术原理和令人震撼的视觉效果&#xff0c;成为了业界关注的焦点。 裸眼3D显示屏是一种前沿的显示技术&#xff0c;它…

centos系统中neo4j数据库和python环境部署

最近因为项目需要&#xff0c;到了一个纯局域网环境中进行知识图谱构建。对于小规模数据&#xff0c;neo4j社区版能够满足基本的建模和查询需要&#xff08;大规模数据需要商业版&#xff0c;或是选用其他开源分布式图数据库如nebula等&#xff09;。本文主要介绍图数据库和pyt…

黄金架构编译部署

LNMP黄金架构部署 行走的CD: LNMP的解析过程:提到 LNMP的解析过程&#xff0c;我们应需要了解一个概念 CGI&#xff0c; CGI 就是指一个通用网关接口&#xff0c;用于 HTTP 服务器和其他应用服务器通讯的一个工具&#xff0c;在这 HTTP 服务器一般咱们就是指的是 Nginx、 Apac…

Java | Leetcode Java题解之第201题数字范围按位与

题目&#xff1a; 题解&#xff1a; class Solution {public int rangeBitwiseAnd(int m, int n) {while (m < n) {// 抹去最右边的 1n n & (n - 1);}return n;} }

获取当前操作系统的名称platform.system()

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 获取当前操作系统的名称 platform.system() [太阳]选择题 在Python中&#xff0c;platform.system() 函数被用来获取什么信息&#xff1f; import platform print("【执行】platform.s…

如何在Java中实现自定义数据结构

如何在Java中实现自定义数据结构 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我将为大家介绍如何在Java中实现自定义数据结构。尽管Java提供了丰富的内置…

05 threeJs基础---阵列立方体和相机适配体验立方体

1.增加相机视角fov 注&#xff1a; 范围更大&#xff0c;意味着可以看到渲染范围更大&#xff0c;远小近大的视觉效果更明显 fov:眼球张开的角度&#xff0c;0时相当于闭眼。aspect:可视区域横纵比。near:眼睛能看到的最近垂直距离。far&#xff1a;眼睛能看到的最远垂直距离。…

Python中的@property装饰器:深入理解与应用

Python中的property装饰器&#xff1a;深入理解与应用 在Python中&#xff0c;property装饰器是一个强大的工具&#xff0c;它允许我们将方法作为属性来访问&#xff0c;使得代码更加简洁、清晰&#xff0c;并提供了更好的封装性。本文将深入探讨property装饰器的工作原理、应…

字节数组输出流转换为Base64方法记录

1. 今天在做字节数组转换Base64的时候遇到一个问题&#xff0c;转换成的Base64字符串自动换行&#xff0c;导致传输失败 关键代码&#xff1a; ByteArrayOutputStream out new ByteArrayOutputStream(); ............. BASE64Encoder encoder new BASE64Encoder(); Stri…

Python 3 循环语句

Python 3 循环语句 Python 是一种广泛使用的高级编程语言,以其简洁明了的语法和强大的功能而闻名。在 Python 中,循环语句是控制程序流程的关键组成部分,它们允许我们重复执行代码块,直到满足特定的条件。Python 3 提供了几种循环语句,包括 for 循环和 while 循环,以及一…

由于没有远程桌面授权服务器怎么办?

在现代的工作环境中&#xff0c;远程访问和远程桌面控制已经成为一项日益重要的需求。随着企业和组织的扩张&#xff0c;人们经常需要在不同的地点之间共享文件和应用程序。由于缺乏远程桌面授权服务器&#xff0c;这一过程可能会变得困难和不安全。 远程桌面授权服务器是一种…

day02-登录模块-主页鉴权

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.分析登录流程1.1传统思路是登录校验通过之后&#xff0c;直接调用接口&#xff0c;获取token之后&#xff0c;跳转到主页1.2vue-element-admin模板的登录思路&…

信息(文字、图像、音频、视频等)在计算机中是如何存储及显示的

信息&#xff08;文字、图像、音频、视频等&#xff09;在计算机中是如何存储及显示的 图片的存储图片的文件格式像素数据的二进制表示存储和处理显示总结 图片的显示4. 像素点控制具体的像素控制过程示例总结 如题&#xff0c;这里以图片为例。 图片的存储 计算机桌面上的一…

基于盲信号处理的声音分离-基于改进的信息最大化的ICA算法

基于信息最大化的ICA算法的主要依据是使输入端与输出端的互信息达到最大&#xff0c;且输出各个分量之间的相关性最小化&#xff0c;即输出各个分量之间互信息量最小化&#xff0c;其算法的系统框图如图所示。 基于信息最大化的ICA算法的主要依据是使输入端与输出端的互信息达到…

华侨大学24计算机考研数据速览,专硕22408复试线290分,学硕11408接收调剂!

华侨大学计算机专业创建于1980年&#xff0c;是福建省最早设立计算机专业的高校之一。1982年成立计算机系&#xff0c;2008年成立计算机科学与技术学院。根据“华侨大学计算机科学与技术学院网站”资料&#xff0c;该院有计算机科学与技术、软件工程、网络工程3个本科专业&…

java中常见数据结构

ArrayList 是 Java 集合框架&#xff08;Java Collections Framework&#xff09;中的一个重要类&#xff0c;它实现了 List 接口&#xff0c;并提供了动态数组的功能。以下是 ArrayList 上的一些常用方法&#xff1a; 构造方法&#xff1a; ArrayList<E>(): 构造一个空的…

git基本使用(二):git分支的操作命令

Git 的多分支管理是指在同一个仓库中创建和管理多个分支&#xff0c;每个分支可以独立开发&#xff0c;互不干扰。分支是 Git 中的一种强大功能&#xff0c;允许开发人员同时在多个不同的功能、修复或实验上工作&#xff0c;而不会影响主分支或其他分支。通过多分支管理&#x…

spring-boot-starter-json配置对象属性为空不显示

问题背景 在Spring Boot中使用spring-boot-starter-json&#xff08;通常是通过jackson实现的&#xff09;时&#xff0c;如果你希望在序列化对象时&#xff0c;如果某个属性为空&#xff0c;则不显示该属性&#xff0c;你可以使用JsonInclude注解来实现这一点。 pom.xml <…

Java数据结构算法(最长递增序列二分查找)

前言: 最长递增子序列&#xff08;Longest Increasing Subsequence, LIS&#xff09;是指在一个给定的序列中&#xff0c;找到一个最长的子序列&#xff0c;使得这个子序列中的元素是单调递增的。子序列不要求在原序列中连续。 实现原理 使用一个 tails 列表&#xff0c;其中…