读取tif格式的图片中的一部分

来源:百度知道 编辑:UC知道 时间:2024/05/13 04:18:15
我现在有一个地图文件,tif格式的,大概1.35G,是一个巨大的图片,需要通过程序切出其中的一小部分,保存为tif或jpg文件,但是只要以二进制流的形式打开就发生内存溢出现象,问了几个高说,说可以直接找到需要的部分的数据读出来,望达人指点迷津

我之前使用的方法是用jai_codec.jar和jai_core.jar这两个jar包

代码如下

import java.awt.image.renderable.ParameterBlock;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import javax.media.jai.JAI;
import javax.media.jai.PlanarImage;

import com.sun.media.jai.codec.FileSeekableStream;
import com.sun.media.jai.codec.ImageCodec;
import com.sun.media.jai.codec.ImageEncoder;
import com.sun.media.jai.codec.TIFFEncodeParam;

public class SplitTif {
public SplitTif() {
}

public static void main(String[] args) throws IOException {
FileSeekableStream stream = new FileSeekableStream("D:\\zxz\\imagery.tif");
ParameterBlock pb = new ParameterBlock();
PlanarImage in =

typedef struct tagIMAGEFILEHEADER
{
WORD byteOrder; // 字节顺序 0x4949 Intel字节顺序
WORD version; // 版本 必须为0x2a
DWORD offsetToIFD; // IFD相对于文件开头的偏移
}IFH; // 文件头

typedef struct tagDIRECTORYENTRY
{
WORD tag; // 属性标志
WORD type; // 属性类型
DWORD length; // 类型个数
DWORD valueOffset; // 类型值相对于文件开头的偏移,如果值长度小于等于4个字节,则为实际数值
}DE; // 目录入口

这两个结构体定义了tif文件的属性,其它的你应该知道怎么做

能说说你找到的解决方法吗?我也在做把tif分块转成bmp的工作

zhe me da