惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 司徒正美
宝玉的分享
宝玉的分享
美团技术团队
量子位
The Cloudflare Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
IT之家
IT之家
爱范儿
爱范儿
J
Java Code Geeks
博客园 - Franky
Last Week in AI
Last Week in AI
B
Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
InfoQ
GbyAI
GbyAI
Recent Announcements
Recent Announcements
小众软件
小众软件
H
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
MyScale Blog
MyScale Blog

博客园 - tiny羊

展示PNG动画精灵 XNA 4.0中实现简单的快捷键模板 C#关键字 之 访问与上下文 C#关键字 之 转换 C#关键字 之 运算符 C#关键字 之 参数 - tiny羊 C#关键字 之 块 C#关键字 之 修饰符 Sql小题几道 泛型类及系统中常用的泛型类 泛型函数 Javascript简明教程6 定义时执行与单例模式 编程语言发展趋势图 Javascript简明教程系列 Javascript简明教程五 DOM Javascript简明教程四 作用域 Javascript简明教程三 函数 Javascript简明教程二 变量 Javascript简明教程一 使用Javascript
自制一个可以为XNA所用的GIF 转 PNG 的小工具
tiny羊 · 2012-01-03 · via 博客园 - tiny羊

XNA不支持GIF动画,PNG也需要以平铺的形式

还是郡主:image

在我已经有了一些GIF资源的时候,如果能有一个工具可以将GIF转为平铺的PNG就好了

求人不如求已,自己写了一个

   1: using System;
   2: using System.Collections.Generic;
   3: using System.Drawing;
   4: using System.Drawing.Imaging;
   5: using System.IO;
   6: using System.Linq;
   7: using System.Text;
   8:  
   9: namespace GifToPng
  10: {
  11:     class Program
  12:     {
  13:         static void Main(string[] args)
  14:         {
  15:             foreach (var path in args)
  16:             {
  17:                 Image gif = Image.FromFile(path);
  18:                 Graphics graphic = null;
  19:                 var frame = new FrameDimension(gif.FrameDimensionsList[0]);
  20:                 int count = gif.GetFrameCount(frame);
  21:                 var image = new Bitmap(gif.Width*count, gif.Height);
  22:                 for (int i = 0; i < count; i++)
  23:                 {
  24:                     gif.SelectActiveFrame(frame, i);
  25:                     using (var stream = new MemoryStream())
  26:                     {
  27:                         gif.Save(stream, ImageFormat.Png);
  28:                         if (graphic == null)
  29:                         {
  30:                             graphic = Graphics.FromImage(image);
  31:                         }
  32:                         graphic.DrawImage(new Bitmap(stream), i*gif.Width, 0);
  33:                     }
  34:                 }
  35:                 var splitStr = path.Split('.');
  36:                 splitStr[splitStr.Length - 1] = "png";
  37:                 var newPath = string.Join(".", splitStr);
  38:                 image.Save(newPath);
  39:                 Console.WriteLine("convert success: {0}",newPath);
  40:             }
  41:             Console.ReadKey();
  42:         }
  43:     }
  44: }
  45:  

使用方法为

将GIF图片拖动到最终生成的EXE上,即可生成对应的PNG图片

clip_image001

该程序可以支持多图片同时处理

以上程序下载:宁珂郡主.rar

--