java实现读取flash的swf文件属性
2005-06-20 12:35
344 查看
/**
flashattrib.java
*/
package picattrib;
import java.io.IOException;
import java.io.FileInputStream;
public class flashattrib {
public flashattrib() {
}
public static void main(String[] args) {
flashattrib flashattrib = new flashattrib();
byte[] bb=null;
image1 im = null;
try {
bb=flashattrib.readFromFile("d://aa.swf");
im = flashattrib.getAttrib(bb);
System.out.println(im.getWidth());
System.out.println(im.getHight());
bb=flashattrib.readFromFile("d://bb.swf");
im = flashattrib.getAttrib(bb);
System.out.println(im.getWidth());
System.out.println(im.getHight());
bb=flashattrib.readFromFile("d://bb.swf");
im = flashattrib.getAttrib(bb);
System.out.println(im.getWidth());
System.out.println(im.getHight());
} catch (IOException ex1) {
System.out.println(ex1);
}
System.out.println(im.getWidth());
System.out.println(im.getHight());
/*
byte aa=0;
for (int i=0;i<260;i++){
System.out.println(flashattrib.getInt(aa++));
}
*/
}
/**
* @param bb byte[]
* @param start int
* @param leng int
* @return int
*/
public int getWeizhi(int start,int weizhi,int leng,byte[] bb){
int aa=0;
if (weizhi==0) {
aa=getInt(bb[start]);
for (int i=1;i<leng;i++){
aa*=256;
int cc=getInt(bb[start+i]);
aa+=cc;
}
}else{
aa=getInt(bb[start])%16;
aa*=256;
aa+=getInt(bb[start+1]);
aa*=16;
aa+=getInt(bb[start+2])/16;
}
return aa;
}
public image1 getAttrib(byte[] bb){
image1 im=new image1();
//flash文件的宽高位置不固定,分为8种,根据第9位的值,来判断当前flash文件的具体宽高位置
//16进制50,58,60,68,70,78,80,88
switch(bb[8]){
case 80: im.setWidth(getWeizhi(9,0,2,bb)/10);
im.setHight(getWeizhi(11,1,2,bb)/10);
break;
case 88: im.setWidth(getWeizhi(9,1,2,bb)/40);
im.setHight(getWeizhi(12,0,2,bb)/10);
break;
case 96: im.setWidth(getWeizhi(9,1,2,bb)/10);
im.setHight(getWeizhi(12,1,2,bb)/10);
break;
case 104: im.setWidth(getWeizhi(10,0,2,bb)/40);
im.setHight(getWeizhi(13,0,2,bb)/10);
break;
case 112: im.setWidth(getWeizhi(10,0,2,bb)/10);
im.setHight(getWeizhi(13,1,2,bb)/10);
break;
case 120: im.setWidth(getWeizhi(10,1,2,bb)/40);
im.setHight(getWeizhi(14,0,2,bb)/10);
break;
case -128: im.setWidth(getWeizhi(10,1,2,bb)/10);
im.setHight(getWeizhi(14,1,2,bb)/10);
break;
case -120: im.setWidth(getWeizhi(10,0,3,bb)/40);
im.setHight(getWeizhi(15,0,2,bb)/10);
break;
}
return im;
}
public int getInt(byte bb){
if (bb>=0) return bb;
else return 256+bb;
}
private static byte[] readFromFile(String fileName) throws IOException
{
PicsModel model = null;
FileInputStream fin = new FileInputStream(fileName);
byte [] buf = new byte[fin.available()];
fin.read(buf);
fin.close();
return buf;
}
}
/*
image1.java
*/
package picattrib;
public class image1 {
private int width;
private int hight;
private int leng;
public image1() {
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void main(String[] args) {
image1 image1 = new image1();
}
private void jbInit() throws Exception {
}
public void setWidth(int width) {
this.width = width;
}
public void setHight(int hight) {
this.hight = hight;
}
public void setLeng(int leng) {
this.leng = leng;
}
public int getWidth() {
return width;
}
public int getHight() {
return hight;
}
public int getLeng() {
return leng;
}
}
如有不明者请于qq:43714802联系
flashattrib.java
*/
package picattrib;
import java.io.IOException;
import java.io.FileInputStream;
public class flashattrib {
public flashattrib() {
}
public static void main(String[] args) {
flashattrib flashattrib = new flashattrib();
byte[] bb=null;
image1 im = null;
try {
bb=flashattrib.readFromFile("d://aa.swf");
im = flashattrib.getAttrib(bb);
System.out.println(im.getWidth());
System.out.println(im.getHight());
bb=flashattrib.readFromFile("d://bb.swf");
im = flashattrib.getAttrib(bb);
System.out.println(im.getWidth());
System.out.println(im.getHight());
bb=flashattrib.readFromFile("d://bb.swf");
im = flashattrib.getAttrib(bb);
System.out.println(im.getWidth());
System.out.println(im.getHight());
} catch (IOException ex1) {
System.out.println(ex1);
}
System.out.println(im.getWidth());
System.out.println(im.getHight());
/*
byte aa=0;
for (int i=0;i<260;i++){
System.out.println(flashattrib.getInt(aa++));
}
*/
}
/**
* @param bb byte[]
* @param start int
* @param leng int
* @return int
*/
public int getWeizhi(int start,int weizhi,int leng,byte[] bb){
int aa=0;
if (weizhi==0) {
aa=getInt(bb[start]);
for (int i=1;i<leng;i++){
aa*=256;
int cc=getInt(bb[start+i]);
aa+=cc;
}
}else{
aa=getInt(bb[start])%16;
aa*=256;
aa+=getInt(bb[start+1]);
aa*=16;
aa+=getInt(bb[start+2])/16;
}
return aa;
}
public image1 getAttrib(byte[] bb){
image1 im=new image1();
//flash文件的宽高位置不固定,分为8种,根据第9位的值,来判断当前flash文件的具体宽高位置
//16进制50,58,60,68,70,78,80,88
switch(bb[8]){
case 80: im.setWidth(getWeizhi(9,0,2,bb)/10);
im.setHight(getWeizhi(11,1,2,bb)/10);
break;
case 88: im.setWidth(getWeizhi(9,1,2,bb)/40);
im.setHight(getWeizhi(12,0,2,bb)/10);
break;
case 96: im.setWidth(getWeizhi(9,1,2,bb)/10);
im.setHight(getWeizhi(12,1,2,bb)/10);
break;
case 104: im.setWidth(getWeizhi(10,0,2,bb)/40);
im.setHight(getWeizhi(13,0,2,bb)/10);
break;
case 112: im.setWidth(getWeizhi(10,0,2,bb)/10);
im.setHight(getWeizhi(13,1,2,bb)/10);
break;
case 120: im.setWidth(getWeizhi(10,1,2,bb)/40);
im.setHight(getWeizhi(14,0,2,bb)/10);
break;
case -128: im.setWidth(getWeizhi(10,1,2,bb)/10);
im.setHight(getWeizhi(14,1,2,bb)/10);
break;
case -120: im.setWidth(getWeizhi(10,0,3,bb)/40);
im.setHight(getWeizhi(15,0,2,bb)/10);
break;
}
return im;
}
public int getInt(byte bb){
if (bb>=0) return bb;
else return 256+bb;
}
private static byte[] readFromFile(String fileName) throws IOException
{
PicsModel model = null;
FileInputStream fin = new FileInputStream(fileName);
byte [] buf = new byte[fin.available()];
fin.read(buf);
fin.close();
return buf;
}
}
/*
image1.java
*/
package picattrib;
public class image1 {
private int width;
private int hight;
private int leng;
public image1() {
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void main(String[] args) {
image1 image1 = new image1();
}
private void jbInit() throws Exception {
}
public void setWidth(int width) {
this.width = width;
}
public void setHight(int hight) {
this.hight = hight;
}
public void setLeng(int leng) {
this.leng = leng;
}
public int getWidth() {
return width;
}
public int getHight() {
return hight;
}
public int getLeng() {
return leng;
}
}
如有不明者请于qq:43714802联系
相关文章推荐
- java实现读取flash的swf文件属性
- java实现读取flash的swf文件属性 - zhangjianwxh的专栏 - CSDNBlog
- 几种读取属性文件的JAVA实现方式
- JAVA基础初探(十二)Map接口及其常用实现类(HashMap)、File类详解(概述、创建、删除、重命名、文件属性读取/设置、遍历文件夹)
- 几种读取属性文件的JAVA实现方式
- java web 利用 commons-fileupload-1.2 实现文件上传 解决 中文乱码& 非文件属性的读取
- java实现附件预览(openoffice+swftools+flexpaper)(解决jsp读取全盘文件问题)
- 几种读取属性文件的JAVA实现方式(2005年)
- java读取属性文件
- java实现文件预览(openoffice+swftools+flexpaper)
- java 读取 properties 属性文件
- Java中通过dom4j读取配置文件实现抽象工厂+反射
- java中经常用到的读写配置文件的信息properties属性的写入,读取例子
- 将后台数据读取到前台的EXCEL文件中去,用javascript实现,asp.net,javacript(发一个原创)
- java读取文件显示进度条的实现方法
- Java 过滤器读取配置文件实现过滤编码
- java读取Properties属性文件的方法
- Java I/O流之BufferedReader实现读取文件
- Java 读取属性文件Properties,方式2
- 【JAVA如何实现从最后一行读取文件】