`
java2000.net
  • 浏览: 650779 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

数据文件转PNG图片程序

阅读更多

做了一段手机游戏移植。有时候碰到游戏的资源文件被做成一个数据文件。想提出来很费事,所以自己写了一个程序来处理。方法就是自定义几个字节。与PNG格式的图片字节相匹配。这样把PNG图片信息提出来

-----------------------------------------------------------------------------------------------------------------------------------------

/*
*数据文件转png图片程序
*@author k7sem
*05年10月12日修改
*/
import java.io.*;

class transfer
{
 byte a1 = (byte)0x89; //定义PNG文件头部的匹配参数
 byte a2 = (byte)0x50;
 byte a3 = (byte)0x4e;
 byte a4 = (byte)0x47;
 byte a5 = (byte)0x0d;
 byte a6 = (byte)0x0a;
 byte a7 = (byte)0x1a;
 byte a8 = (byte)0x0a;
 //------------png file end--------------//png文件尾
 byte e1 = (byte)0x49;
 byte e2 = (byte)0x45;
 byte e3 = (byte)0x4e;
 byte e4 = (byte)0x44;
 byte e5 = (byte)0xae;
 byte e6 = (byte)0x42;
 byte e7 = (byte)0x60;
 byte e8 = (byte)0x82;
 //--------------------------------------

 transfer() //transfer的构造
 {
 }
 //从屏幕中输入要转换的文件路径
 public String in()//Type a file path and return the path as a String
 {
  System.out.println("Please type the file path:");
  BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  String ss="";
  try{
   ss = br.readLine();
  }catch(Exception e){
   e.printStackTrace();
  }
  return ss;

 }
 //读取文件路径,进行算法分析,从新写入新文件
 public void readFile(String s)//use the file path to contruct a method which is solve the byte of this file and return a byte array
 {
  byte[] b= new  byte[650000]; //定义存放被处理文件的字节数组,一定要比被处理的文件实际大小要大
  int i = 0; //返回具体读到了多少个字节
  
  try
  {
  FileInputStream fs = new FileInputStream(new File(s)); //用文件路径 构造一个文件流
  i = fs.read(b); //将读到的byte放入 b的数组中,返回实际读到数i
  if(i != -1)  //判断文件是否为空 
   {
   System.out.println("The file size is "+i+" byte");   
   }else
   {
    System.out.println("The file is empty ");
   }
  
  }catch(Exception e){
   e.printStackTrace();

  }
  
  int h = 0;
  boolean head = true;
  boolean f = false; //保证每次只查找一次文件尾 
  int y = 0;  //存放文件byte的长度
  int headbyte=0;
  for(int j=0;j<i;j++) //对所有byte遍历
  {
   
   
   if((a1 == b[j])&&(a2 == b[j+1])&&(a3 == b[j+2])&&(a4 == b[j+3])&&(a5 == b[j+4])&&(a6 == b[j+5])&&(a7 == b[j+6])&&(a8 == b[j+7])) // 判断前8个字节是否为png头部信息
   {
    if(head) //判断第一个PNG文件从什么位置开始
    {
     head = false;
     headbyte = j;
    }
    
   
    for(int z=j;z<i;z++) //对所有byte遍历
    {
     
     if(!f)
     {
      
      if((e1==b[z])&&(e2==b[z+1])&&(e3==b[z+2])&&(e4==b[z+3])&&(e5==b[z+4])&&(e6==b[z+5])&&(e7==b[z+6])&&(e8==b[z+7]))//判断后8个字节是否为文件尾
      {
       y = z-j+headbyte;//满足条件后 将文件尾位置减掉文件头位置再减掉 头部信息位数 所得长度
             
       f=true;      
              
       try
       {
             
       FileOutputStream fos = new FileOutputStream(new File(".",h+".png"));
       fos.write(b,j,y);
                
       h++;
      
       }catch (Exception e){}
       
       
      }
      
     }
    
    }
   
    f=false;    
     
  }   
   
  }
  System.out.println(h+" files has transfer successful!!");//打印出实际转换了多少个PNG文件
  
 }
 public static void main(String[] args)
 {
  transfer ui = new transfer();//产生transfer 对象
  ui.readFile(ui.in()); //执行读取文件的方法
  
 }
}

----------------------------------------------------------------------------------------------------------------------

分享到:
评论

相关推荐

    将bmp文件转换为png文件的项目,附源码

    2. 图像数据处理:在转换过程中,需要对图像的像素数据进行操作,这可能包括颜色空间转换(例如从RGB到RGBA),以及适应PNG文件的存储格式。 3. libpng库:`libpng`是一个开源库,专门用于处理.png文件。在这个项目...

    TGA转PNG代码,可将指定目录下的TGA文件转换为PNG文件,支持命令行模式

    6. **命令行模式**:为了支持命令行模式,程序需要接收用户输入的源TGA目录和目标PNG目录。通过解析命令行参数,可以灵活地指定转换的文件或整个目录。 在实际应用中,这个工具可以方便地集成到批处理脚本中,自动...

    利用GDAL把TIF文件转换为bmp,png等格式图片并对图片进行压缩

    本教程将详细介绍如何使用GDAL库将TIFF文件转换为更常见的bmp和png格式,并对图像进行压缩,以解决大文件可能导致的内存问题。 首先,我们需要了解GDAL的基本用法。GDAL不仅提供了命令行工具,还有一套C++ API,...

    Android-gif2png是一个GIF转换PNG的Java程序(转换为一张大图或者连续帧

    - 该程序解析GIF文件中的每一帧,提取图像数据。 - 对于转换为单张大图,它会将所有帧合并成一个大的PNG图像,通常适用于静态展示或预览。 - 对于转换为连续帧的PNG序列,每一帧都会被保存为单独的PNG文件,便于...

    常用图标 32x32 PNG ICO 程序 图标 素材

    本素材包包含的是“常用图标 32x32 PNG ICO 程序 图标 素材”,这意味着它提供了一系列32像素乘32像素大小的图标,适用于各种程序和应用的开发。 首先,我们来了解图标的基本类型。PNG和ICO是两种常见的图标格式: ...

    微信DAT文件转图片工具

    微信DAT文件是微信应用程序在运行过程中产生的临时缓存文件,主要用于存储聊天记录中的图片、音频、视频等多媒体信息。这些文件通常以二进制格式存储,对于普通用户来说是不可读的,因为它们不是标准的图像格式。...

    将EMF图片格式转换成PNG

    在本项目中,我们关注的是如何将EMF图片转换为PNG格式,这通常涉及到图像处理和编程技术。`freehep`是一个开源的Java库,专门用于2D图形和图像处理,其中包括了将EMF转换为其他格式的功能。`freehep`库是由Heiko ...

    将png格式图片转换成YUV格式,C++

    总结来说,将PNG图片转换为YUV格式涉及图像读取、颜色空间转换、处理Alpha通道(如果存在)、存储YUV数据以及输出YUV文件等多个步骤。C++通过利用libpng和OpenCV等库,可以高效地完成这个过程。了解并实践这一转换,...

    png转ico图片工具

    在设计和开发过程中,有时需要将PNG图片转换为ICO格式,以便在桌面快捷方式、程序图标等地方使用。"PNG转ICO图片工具"就是专门为此目的设计的软件,它简化了这一转换过程,让操作变得极其简单,适合对计算机技术不太...

    png 转换 bin

    PNG(Portable Network Graphics)是一种广泛使用的无损压缩的位图图像格式,而BIN(Binary File Format)则是一种二进制文件格式,常用于存储固件、软件镜像或游戏数据等。"PNG转换为BIN"的过程是将PNG图像的数据...

    dds2pngdds格式批量转换png

    5. 兼容性:转换后的PNG文件应能在各种平台和应用程序中无缝使用,无论是在Windows、Mac还是Linux系统,或者在Photoshop、GIMP等图像编辑软件中。 6. 性能优化:由于可能涉及大量的文件转换,dds2png工具需要具有...

    大话西游WAS导出PNG图片,C#源码!方便导出大话西游WDF资源.非本人原创!

    通常,这样的程序会包括读取WAS文件的二进制数据,解析其内部结构,提取图像数据,并将这些数据转换成PNG格式所要求的像素数组。在C#中,这可能涉及到使用System.IO类来处理文件流,使用System.Drawing或System....

    PNG-ICO 图标格式互转工具

    本文将深入探讨PNG和ICO格式的特点、转换需求以及如何使用“PNG-ICO 图标格式互转工具”进行转换。 1. PNG格式详解: - 无损压缩:PNG采用无损压缩方式,保存后的图像不会出现质量损失。 - 透明度支持:PNG支持24...

    png图片批量转换jpg格式工具

    2. **添加文件**:在程序界面中,有一个“添加文件”或类似选项,用户可以通过这个功能将需要转换的PNG图片导入到软件中。 3. **选择输出目录**:转换后的JPG图片会保存在指定的输出目录下,用户应提前设置好这一...

    可以作为应用程序的.png图标

    PNG(Portable Network Graphics)是一种无损压缩的位图文件格式,广泛用于网页设计、软件界面以及应用程序图标。在本主题中,“可以作为应用程序的.png图标”指出这些PNG图像被设计为应用的图形用户界面(GUI)中的...

    ktxToPng.rar

    用户只需将KTX文件拖放到程序界面,即可快速得到对应的PNG文件,大大提高了工作效率。 5. **操作步骤** 使用ktxToPng工具进行转换的步骤如下: - 下载并解压“ktxToPng.rar”压缩包。 - 运行解压后的“ktxToPng...

    Java提取IPA中的png文件, 并进行解码还原png图片

    在Windows系统上,直接打开IPA文件是无法查看其中的资源,尤其是PNG图片,因为这些图片通常经过了iOS特有的编码处理,仅能在Safari浏览器或iOS设备上正确显示。 要解决这个问题,我们需要使用Java编程语言来实现PNG...

    微信小程序开发常用的 1700 个 PNG小图标.zip

    本压缩包“微信小程序开发常用的1700个PNG小图标.zip”包含了大量用于微信小程序开发的图标资源,同时也适用于其他移动应用和网页开发。 这些PNG小图标是开发过程中必不可少的设计元素,它们用于表示各种功能、状态...

    png解码程序及例子

    1. **识别文件格式**:首先,程序会检查文件的前8字节是否符合PNG签名,以确认文件是否为有效的PNG图像。 2. **读取IHDR块**:然后,程序读取IHDR块,获取图像的基本属性,如宽度、高度、颜色类型(灰度、RGB、索引...

    PNG图标图片.rar

    在程序开发中,PNG图标图片因其高质量、小巧的文件大小以及支持透明度等特点,被广泛应用于网页、软件界面、移动应用等场景。 这个名为“PNG图标图片.rar”的压缩包显然包含了各种不同规格的PNG图标资源。这些图标...

Global site tag (gtag.js) - Google Analytics