关闭

worldwind java导入栅格影像时的无效区域透明问题

标签: worldwindjava栅格透明
412人阅读 评论(0) 收藏 举报
分类:

worldwind中栅格数据导入时,会调用gov.nasa.worldwind.data包中ImageIORasterWriter里的writeImage函数进行切片,其代码如下:

protected void writeImage(DataRaster raster, String formatSuffix, java.io.File file) throws java.io.IOException
    {
        BufferedImageRaster bufferedImageRaster = (BufferedImageRaster) raster;
        java.awt.image.BufferedImage image = bufferedImageRaster.getBufferedImage();
        javax.imageio.ImageIO.write(image, formatSuffix, file);
    }

无效区域的透明,可以设置png图片的无效值来实现。显然修改其中的javax.imageio.ImageIO.write(image, formatSuffix, file);函数即可。修改后的代码如下所示:

    public static boolean savePngTransparent(BufferedImage image, String formatSuffix, java.io.File file)
    {
        try {
            if(formatSuffix.equalsIgnoreCase("png")&&image!=null)
            {
                Image transparente = makeColorTransparent(image, Color.BLACK);                 
                BufferedImage transparent = toBufferedImage(transparente);
                ImageIO.write(transparent, formatSuffix, file);
                return true;
            }
            else            
                return false;
        } 
        catch (IOException ex) {
            ex.printStackTrace();
        }  
        return false;
    }

其代码逻辑比较简单,首先让某种颜色透明,然后将 Image 转成 BufferedImage 的方法,最后写出成文件。
让某种颜色透明参考:
http://www.rgagnon.com/javadetails/java-0265.html
将 Image 转成 BufferedImage 参考:
http://www.oschina.net/code/snippet_12_5138

0
0
查看评论

WordWind(Java版)开发环境搭建

首先在官网下载最新的WordWind源码文件,解压缩,然后在Eclipse中新建Java Project。 如果想对WorldWind源码进行研究,开发环境搭建如下: 1.将下载的文件中的src文件夹下的所有目录文件拷贝到工程中的src目录下。 2.在Java工程中新建lib文件夹,把gadl.ja...
  • T_27080901
  • T_27080901
  • 2014-03-02 22:23
  • 2992

二、WorldWindJavaApplet

WorldWindJava2.0
  • suhu_1234
  • suhu_1234
  • 2015-12-02 16:58
  • 585

World Wind Java SDK 2.0嵌入到Eclipse中的方法

1、解压worldwind-2.0.0.zip 2、打开Eclipse,依次点击New–>Java project ,输入project的名称WorldWind,一路直到finish。然后就可以看到工程文件下又src文件夹和JRE System Library。 3、然后我们在src文件夹...
  • u013713294
  • u013713294
  • 2016-09-12 20:57
  • 545

worldwind学习笔记-1-Configuration

做的一个小的cs程序中一直嵌套worldwind使用,由于使用的是worldwind的java版,结果cs程序也一直是用java的swing开发的,swing在几年前确实很强大,但是现在给人感觉蛮没落的,几乎很少见到swing开发的软件了,不过还好,我们的用户不考虑我们使用什么系统,也可以吹吹牛逼说...
  • zicheng_
  • zicheng_
  • 2014-05-18 21:39
  • 2531

worldwind java对TMS服务(腾讯)的支持

利用worldwind java加载TMS数据源
  • zhanghaoping
  • zhanghaoping
  • 2016-06-05 10:57
  • 667

World Wind Java开发之三 显示状态栏信息

先来看下本篇博客索要达到的效果: 找到源码下的gov.nasa.worldwind.util下的StatusBar.java文件,可以看到状态栏显示的信息主要包括视点高度以及对应空间点三维坐标以及是否使用网络等信息。在后续的开发中采用离线模式,因此不需要联网,也不显示网络状态信息。代码依次如下面...
  • liushuo_whu
  • liushuo_whu
  • 2014-11-08 14:24
  • 4430

World Wind Java开发之八——加载本地缓存文件构建大范围三维场景

上一篇博客主要是针对小文件直接导入WW中显示,然而当文件特别大时,这种方式就不太可行。因此要将大文件切片,生成本地缓存,WW可以加载本地缓存文件,保障浏览场景时的流畅性。 1、使用Global Mapper生成WW缓存切片 使用Global Mapper生成WW缓存切片的步骤已上传至使用Global...
  • liushuo_whu
  • liushuo_whu
  • 2014-12-20 20:00
  • 4874

World Wind Java开发 加载三维模型

之前的一篇博客是关于加载粗三维模型的,见http://blog.csdn.net/giser_whu/article/details/43452703,这个地方还存在着不能加载纹理的问题,一直没呢解决。那么WW如何加载常用的三维模型格式(3ds、obj、skp)呢,通过一番搜索,了解到WW可以加载c...
  • ldkcumt
  • ldkcumt
  • 2016-04-14 15:23
  • 2305

World Wind Java开发之五——读取本地shp文件

World Wind Java 使用IconLayer图层类表现点和多点数据,使用RenderableLayer图层表现线和面数据,一个图层只能对应一组shape文件。World Wind Java首先使用ShapefileLoader类完成对shape文件的读取和加载,再通过createLayer...
  • liushuo_whu
  • liushuo_whu
  • 2014-11-25 18:42
  • 4806

九、WorldWindJava2.0加载影像问题

WorldWindJava2.0
  • suhu_1234
  • suhu_1234
  • 2015-12-17 13:37
  • 1098
    个人资料
    • 访问:7749次
    • 积分:163
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档