抽取jpeg内置的缩略图
来源:互联网 发布:灭佛运动 知乎 编辑:程序博客网 时间:2024/06/07 01:51
jpeg格式一般默认会内置一张缩略图在原图里面。以下是抽取此缩略图的代码:
import java.io.DataInputStream;
import java.io.*;
public class Thumbnail {
static byte[] preImg;
static byte[] fImg;
static String[] Fname;
static int Fcount;
static byte[] head;
static byte[] end;
public Thumbnail() {
super();
// TODO Auto-generated constructor stub
}
public static void readImage(String url) throws IOException{
try {
DataInputStream dis=new DataInputStream(new FileInputStream(new File(url)));
int size = dis.available();
preImg=new byte[size];
for(int i=0;i<size;i++){
preImg[i]=dis.readByte();
}
dis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void writeImage(String fileName) throws IOException{
FileOutputStream fos=new FileOutputStream( fileName);
// System.out.println(f[0]);
fos.write(fImg);
fos.close();
}
public static void find(String dir)
{
File parent = new File(dir);
File child[] = parent.listFiles();
Fcount=child.length;
Fname=new String[Fcount];
for(int i = 0;i<child.length;i++)
{
if(child[i].isFile())
{
Fname[i]=child[i].toString();
System.out.println("file"+Fname[i]);
try {
Thumbnail.readImage(Fname[i]);
Thumbnail.moImage();
Thumbnail.writeImage(Fname[i]);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else
{
//find(child[i].toString());
}
}
}
private static void moImage() {
// TODO Auto-generated method stub
int start=0;
int endl=0;
head=new byte[2];
head[0]=(byte) 0xFF;
head[1]=(byte) 0xD8;
end=new byte[2];
end[0]=(byte) 0xFF;
end[1]=(byte) 0xD9;
for(int i=2;i<preImg.length-1;i++){
if(preImg[i]==head[0]&&preImg[i+1]==head[1]){
start=i;
}
if(preImg[i]==end[0]&&preImg[i+1]==end[1]){
endl=i;
break;
}
}
if(start!=0){
fImg=new byte[endl-start];
System.arraycopy(preImg,start,fImg,0,fImg.length);
}else{
System.out.println("没有缩略图");
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Thumbnail.find("c:/1/");
}
}
- 抽取jpeg内置的缩略图
- 如何抽取文件的缩略图
- FFMPEG抽取视频缩略图
- 使用libjpeg库实现jpeg图片的缩放(缩略图)
- 使用libjpeg库实现jpeg图片的缩放(缩略图)
- WebCollector爬虫使用内置的Jsoup进行网页抽取
- Baseline JPEG和Progressive JPEG的区别
- Baseline JPEG和Progressive JPEG的区别
- Baseline JPEG和Progressive JPEG的区别
- Baseline JPEG和Progressive JPEG的区别
- JPEG系列一 JPEG图片的文件格式
- 网页正文的抽取
- 抽取不同的随机数
- SQL的随机抽取
- dtp的抽取模式
- httpPpost的params抽取
- 数据抽取的方式
- CRM-BaseDao的抽取
- 诡异的问题:在IE中上传附件很慢而FireFox中飞快
- J2ee应用程序结合水晶报表:例程研究
- ArcIMS的开发总结(一)
- Oracle ltrim() 函数详细用法
- ArcIMS的开发总结(二)
- 抽取jpeg内置的缩略图
- C#中汉字转拼音类
- Windows的内存结构
- A JavaScript Module Pattern - JavaScript的一种组件模式
- 对RMI的简单理解
- Windows Mobile开发环境搭建指南
- 武汉大学三日游视频
- 经典正则表达式
- 学习感想