package com.example.grayalphatranstest;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;public classMainActivity extends Activity {private static final String TAG = "GrayAlphaTest";private ArrayList nameList = newArrayList();int nameNum = 0;//private static String dirName = "D:";
private String pngFilePath = Environment.getExternalStorageDirectory().getAbsolutePath()+"/srx2/";
@Overrideprotected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//setContentView(new SampleView(this));//readFileByDirect();
Log.v(TAG,"oncreate==");
getPngFileList(pngFilePath);//getNameList();
readFileByDirect();
}private voidgetPngFileList(String FileName) {
File parentF= newFile(FileName);
String fileTest=parentF.getAbsoluteFile().getPath();if (!parentF.exists()) {
Log.v(TAG,"file not exits");return;
}if (parentF.isFile()) {//>10K file//if (parentF.isFile() && (parentF.length()>10240)) {//>10K file
Log.v(TAG,"fileTestPath=="+fileTest);//nameList.add(parentF.getAbsoluteFile());//
//if(parentF.length()>10240) {
nameList.add(fileTest);//}
return;
}
String[] subFiles=parentF.list();for (int i = 0; i < subFiles.length; i++) {
getPngFileList(fileTest+ "/" +subFiles[i]);
}
}publicArrayList getNameList() {//ArrayList mList = getNameList();
Iterator it1 =nameList.iterator();while(it1.hasNext()) {
Log.v(TAG,"element="+it1.next());
}returnnameList;
}private voidreadFileByDirect() {//ArrayList mList = getNameList();
Iterator it1 =nameList.iterator();
String allFilePath= "";while(it1.hasNext()) {
allFilePath=it1.next().toString();if (allFilePath != null) {
findARGBFile(allFilePath);
}
}
}private voidfindARGBFile(String filePath) {byte[] b = new byte[1];byte[] b1 = new byte[30];
String fileoutPath=Environment.getExternalStorageDirectory()
.getAbsolutePath()+ "/srxout/";try{
FileInputStream fin= newFileInputStream(filePath);//int len = fin.read(b,0,4);
int inputNum =fin.available();byte[] outBuffer = new byte[inputNum];for (int i = 0; i < 26; i++) {
fin.read(b);
}//fin.skip(20);//fin.read(b);//if (b.equals("-119 80 78 71")) {//Log.v(TAG, "This is png...");//fin.read(b1, 25, 1);//int mm = (int)b1[26];
int bb = (int) b[0];if (bb == 6) {
fin.close();
Log.v(TAG,"this is ARGB png");
FileInputStream finargb= newFileInputStream(filePath);
finargb.read(outBuffer);//finargb.//int len = fin.read(b,0,4);//int inputNumargb = finargb.available();
String houzhui =seperateName(filePath);/*if (houzhui.endsWith(".9.png")) {// 9png返回
finargb.close();
return;
}*/String fileoutPath1= fileoutPath +seperateName(filePath);if(judgeFileNameExit(fileoutPath1)) {//seperateName(filePath);
fileoutPath1 = fileoutPath +changeSameName(filePath);
}//if(fileoutPath.)//fileoutPath += "/" + nameNum + ".png";
Log.v(TAG, "fileoutpath==" +fileoutPath1);
FileOutputStream fout= newFileOutputStream(fileoutPath1);//if()//for (int i = 1; i <= inputNum; i++) {
fout.write(outBuffer, 0, inputNum);
fout.close();
finargb.close();
}else{
fin.close();
}
}catch(FileNotFoundException e) {//TODO Auto-generated catch block
e.printStackTrace();
}catch(IOException e) {//TODO Auto-generated catch block
e.printStackTrace();
}
}privateString seperateName(String filePath) {//String filePath = "c:\\image\\product\\001.png";
String[] aa = filePath.split("/");
String name= aa[aa.length - 1];
Log.v(TAG,"realname ="+name);returnname;
}privateString changeSameName(String filePath){
String name=seperateName(filePath);
String[] aa= name.split(".png");
String nameout= aa[0]+"_" + nameNum + ".png";returnnameout;
}privateboolean judgeFileNameExit(String path){
File file= newFile(path);if(file.exists()){
nameNum++;return true;
}return false;
}
@Overridepublicboolean onCreateOptionsMenu(Menu menu) {//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);return true;
}