我不得不加载并存储一个大的tiff(59392x40192px)与JAI.我的解决方案是:TiledImages.

我使用了TiledImage,因为我需要tile和subimages.

要使用TiledImage效率,您应该使用您喜欢的磁贴大小来构建它. JAI使用TileCache,因此当不需要时,整个Image都不会在内存中.

要在文件中编写TiledImage,请使用选项“writeTiled”(避免使用OutOfMemory,因为它逐个tile地写入):

public void storeImage(TiledImage img, String filepath) {

TIFFEncodeParam tep = new TIFFEncodeParam();

//important to avoid OutOfMemory

tep.setTileSize(256, 256);

tep.setWriteTiled(true);

//fast compression

tep.setCompression(TIFFEncodeParam.COMPRESSION_PACKBITS);

//write file

JAI.create("filestore", img, filepath, "TIFF", tep);

}

它适用于高达690mb(压缩)的图像,对于尚未测试的较大图像.

但是,如果你正在使用32位WinXP,你可能无法拥有更多的1280m HeapSpace大小,这仍然是Java VM的限制.

我的TiledImage是使用我的图像源数据中的IndexedColorModel构建的:

//here you create a ColorModel for your Image

ColorModel cm = source.createColorModel();

//then create a compatible SampleModel, with the tilesize

SampleModel sm = cm.createCompatibleSampleModel(tileWidth,tileHeight);

TiledImage image = new TiledImage(0, 0, imageWidth, imageHeight, 0, 0, sm, cm);

java jai例子_java – 使用JAI将swing组件写入大型TIFF图像相关推荐

  1. java jai例子_用JAI扩展Java的图像处理能力

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Java的图像处理能力不断地在增长,但是将一个如PNG或者JPEG格式的文件写入磁盘或从磁盘读取这样的操作仍然是一种巫术.解决方案是使用Java Adva ...

  2. java jai例子_用JAI扩展Java的图像处理能力(转)

    Java的图像处理能力不断地在增长,但是将一个如PNG或者JPEG格式的文件写入磁盘或从磁盘读取这样的操作仍然是一种巫术.解决方案是使用Java Advanced Imaging(JAI)API.JA ...

  3. java swt 双屏_Java中AWT、Swing与SWT三大GUI技术的原理与效率差异

    看了一下对Java GUI讨论的帖子,所以写了一篇文章来阐述一下各种GUI技术的优劣. Java世界中,目前最知名的三大GUI库分别是: 1.AWT(Abstract Window Toolkit)抽 ...

  4. java代码例子_Java与C++两大语言比较

    Java Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Java语言作为静态面向对象编程 ...

  5. java awt 监视器_java – 停止所有Awt / Swing线程和监视器和东...

    看看AWT Threading Issues,它解释了退出AWT应用程序的标准.您要关注的部分如下: Therefore, a stand-alone AWT application that wis ...

  6. java 泛型例子_java中的泛型的一些常见例子

    /** * @author Rollen-Holt 使用泛型 */ class hello { hello(){ } public T getName(){ return name; } public ...

  7. java 序列化 例子_Java序列化和反序列化例子

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段.@H_502_1@ 编程之家小编现在分享给大家,也给大家做个参考.@H_502_1@ /** * 对象序列化与反序列化 * */ impor ...

  8. java protobuf 例子_java使用protobuf例子

    Protobuf版本:2.5.0 最近研究Hadoop时,发现Hadoop的RPC使用到了Protobuf这个东西,于是就了解了这个 Protobuf Protobuf是google的一种数据交互格式 ...

  9. java初始化例子_Java 非静态初始化的例子

    在继承关系中,静态初始化.非静态初始化和构造函数的执行顺序 public class ExA { static { System.out.println("父类--静态代码块"); ...

最新文章

  1. R语言使用gt包和gtExtras包优雅地、漂亮地显示表格数据:使用gtExtras包添加一个图,显示表中某一列中的数字、并自定义表格数据显示的主题格式、并自定义数值数据的格式(例如百分比)
  2. 分摊的意思_会计分摊是什么意思
  3. 神经网络的输出有方向吗?
  4. PAT 1038. 统计同成绩学生
  5. 改变元素属性方法_IMR:全球品牌如何结合本土文化元素以提高品牌评价 | 唧唧堂论文解析...
  6. security工作笔记007---spring security自定义AuthenticationProvider,验证规则
  7. aspdotnet部分资源
  8. Bailian2701 Bailian3864 POJ NOI0105-39 与7无关的数【进制】
  9. 启动和停止mysql服务器_MySQL服务器的启动与关闭方法
  10. Linux 下编译安装 PHP 5.6
  11. Linux下socket-文件传输
  12. python10进制2进制转换
  13. 电子邮件服务器怎样匿名转发功能,技巧:你为什么不能匿名发送电子邮件
  14. Android11 手动屏幕亮度调节流程代码追踪;
  15. n维向量,n维向量空间,n维向量空间的维数
  16. 水泥路面、桥梁基建、隧道裂痕裂缝检测数据集
  17. android x86_646,雷电模拟器4.0x86_64位版本即android 7.1 xposed安装
  18. MyCat 学习笔记 第十五篇 . 数据分片后的迁移验证
  19. 苹果计算机开机进入安全模式,iphone进入安全模式及退出安全模式的方法
  20. 《Designing and Training of A Dual CNN for Image Denoising》阅读笔记

热门文章

  1. linux命令 gedit,使用linux的gedit命令GNOME桌面的文本编辑器
  2. lammps教程:如何计算单个原子的体积
  3. 宁波三中机器人_宁波晚报
  4. 营养食谱小贴士:选择食物巧防职业病
  5. 在CentOS 5里使用 vault.centos.org 作为yum源
  6. 【IoT】高通 Camera 流程及调试步骤
  7. 未能解析引用的程序集......因为它对不在当前目标框架“.NETFramework,Version=v4.0,Profile=Client”中的 (转)...
  8. 安装ubuntu20.04, CUDA11.4, cnDNN, tensorflow, pytorch
  9. 【热门主题】约会大作战win7主题
  10. 信息收集8——masscan,nbtscan