网友投稿 | 设为首页 | 加入收藏
1/1页1 跳转到查看:5557
回复该主题 发新话题
键盘左右键可以进行前后翻页操作
帮助

你精通java或者你想把DG高清无水印用在ww上,那你就进来看看

你精通java或者你想把DG高清无水印用在ww上,那你就进来看看

老蔡很菜,只会现学现卖,java是个好工具可惜一知不解

为了尽快把DG上的数据变成无水印的,编了个JAVA,要在IDE里运行,可以先用flashget从DG上下图片后用java直接拼图用到WW里,本来不想献丑,坛上高人多,还是让大家完善一下


 .使用注意点
 
 1.在JAVA IDE里运行


 2.main.java 和image.java必须输入一样的坐标,跨度,层数


 3.使用中在运行前最好先查看一下


 4.复制main.java生成的url后用flashget下载到C:\\1文件夹(也可更改image.java相应代码换个位置)



main.java 代码



public class Main {
   
    /** Creates a new instance of Main */
    public Main() {
    }
   
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // 输入跨度A
        
        
        final double A=0.002197265625;
        final double B=8*A;
        //输入要取图的数量纵向i
        for (int i=1;i<=1;++i){
            if(i<=32){
             //坐标必须同Image.java一样
 
                double X=121.28906255;
                double Y=31.0078125;
                Y=Y+(i-1)*B;
             //输入要取图的数量横向n
                for (int n=1;n<=176;++n){
                    if(n<=176){
                        double Lon=X+A;
                        double Lat=Y+B;
                        System.out.println("http://imageconnect.globexplorer.com/wiresvcs/wms/public_wms?request=GetMap&layers=Premium_world2&srs=EPSG:4326&width=64&height=512&bbox=";+X+","+Y+","+Lon+","+Lat+"&/"+i+"_"+n+".jpg");
                        X=Lon;
                    }
                }
            }
        }
    }

}



Image.java代码



import java.io.File;

import java.awt.image.BufferedImage;

import javax.imageio.ImageIO;



public class image {
   
    /** Creates a new instance of image */
    public image() {
    }
   
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        //8=0.0087890625
        // 0.00439453125等于9层高清
        //10=0.002197265625
        //11=0.0010986328125
        //12=0.00054931640625
        //13=0.000274658203125
        final double A=0.00054931640625;
        final double B=8*A;
        
        //
        for (int i=6;i<=15;++i){
            if(i<=116){
                //不能随便输入坐标必须是WW的图片左下角坐标,方法参见说明
                double X=121.29345703125;
                double Y=31.01660156;
                Y=Y+(i-1)*B;
                //n取生成url的n的8分之一
                for (int n=1;n<=85;++n){
                    if(n<=85){
                        //输入层数
                        int F=12;
                       
                        //创建编号F的文件夹
                       
                        double Lon=X+8*A;
                        double Lat=Y+B;
                        //5120为9层的文件夹总数,10=10240,11=20480,12=40960,13=81920
                        double g=(Y+90)/180*40960;
                        //10240为9层的图片总数,10=20480,11=40960,12=81920,13=163840
                        double h=(X+180)/360*81920;
                        //文件夹号转换
                        int G=(int)Math.round(g);
                        String Folder="000";
                        if( G<10){Folder="000"+G;}
                        if( G<100 & G>=10 ){ Folder="00"+G;}
                        if( G<1000 & G>=100 ){Folder="0"+G; }
                        if( G>=1000){Folder=""+G; }
                        //图片号转换
                        int H=(int)Math.round(h);
                        String Mark="000";
                        if( H<10){Mark="000"+H;}
                        if( H<100 & H>=10 ){ Mark="00"+H;}
                        if( H<1000 & H>=100 ){Mark="0"+H; }
                        if(H>=1000){Mark=""+H; }
                        X=Lon;
                        try{
                           
                            int o=8*(n-1)+1;
                            int p=8*(n-1)+2;
                            int q=8*(n-1)+3;
                            int r=8*(n-1)+4;
                            int s=8*(n-1)+5;
                            int t=8*(n-1)+6;
                            int u=8*(n-1)+7;
                            int v=8*(n-1)+8;
                            //读取第1张图片位置在C盘1文件夹,自己更改图片位置
                            File file1 = new File("c:\\1/"+i+"_"+o+".jpg");;
                            BufferedImage Image1 = ImageIO.read(file1);
                            int width = Image1.getWidth();//图片宽度
                            int height = Image1.getHeight();//图片高度
                            //从图片中读取RGB
                            int[] ImageArray1 = new int[width*height];
                            ImageArray1 = Image1.getRGB(0,0,width,height,ImageArray1,0,width);
                            //对第2张图片做相同的处理
                            File file2 = new File("c:\\1/"+i+"_"+p+".jpg");
                            BufferedImage Image2 = ImageIO.read(file2);
                            int[] ImageArray2 = new int[width*height];
                            ImageArray2 = Image2.getRGB(0,0,width,height,ImageArray2,0,width);
                            //对第3张图片做相同的处理
                            File file3 = new File("c:\\1/"+i+"_"+q+".jpg");
                            BufferedImage Image3 = ImageIO.read(file3);
                            int[] ImageArray3 = new int[width*height];
                            ImageArray3 = Image3.getRGB(0,0,width,height,ImageArray3,0,width);
                            //对第4张图片做相同的处理
                            File file4= new File("c:\\1/"+i+"_"+r+".jpg");
                            BufferedImage Image4 = ImageIO.read(file4);
                            int[] ImageArray4 = new int[width*height];
                            ImageArray4 = Image4.getRGB(0,0,width,height,ImageArray4,0,width);
                            //对第5张图片做相同的处理
                            File file5= new File("c:\\1/"+i+"_"+s+".jpg");
                            BufferedImage Image5 = ImageIO.read(file5);
                            int[] ImageArray5 = new int[width*height];
                            ImageArray5 = Image5.getRGB(0,0,width,height,ImageArray5,0,width);
                            //对第6张图片做相同的处理
                            File file6= new File("c:\\1/"+i+"_"+t+".jpg");
                            BufferedImage Image6 = ImageIO.read(file6);
                            int[] ImageArray6 = new int[width*height];
                            ImageArray6 = Image6.getRGB(0,0,width,height,ImageArray6,0,width);
                            //对第7张图片做相同的处理
                            File file7= new File("c:\\1/"+i+"_"+u+".jpg");
                            BufferedImage Image7 = ImageIO.read(file7);
                            int[] ImageArray7 = new int[width*height];
                            ImageArray7 = Image7.getRGB(0,0,width,height,ImageArray7,0,width);
                            //对第8张图片做相同的处理
                            File file8= new File("c:\\1/"+i+"_"+v+".jpg");
                            BufferedImage Image8 = ImageIO.read(file8);
                            int[] ImageArray8 = new int[width*height];
                            ImageArray8= Image8.getRGB(0,0,width,height,ImageArray8,0,width);
                            //生成新图片
                            BufferedImage ImageNew = new BufferedImage(width*8,height,BufferedImage.TYPE_INT_RGB);
                            ImageNew.setRGB(0,0,width,height,ImageArray1,0,width);//设置1部分的RGB
                            ImageNew.setRGB(64,0,width,height,ImageArray2,0,width);//设置2部分的RGB
                            ImageNew.setRGB(128,0,width,height,ImageArray3,0,width);//设置3部分的RGB
                            ImageNew.setRGB(192,0,width,height,ImageArray4,0,width);//设置4部分的RGB
                            ImageNew.setRGB(256,0,width,height,ImageArray5,0,width);//设置5部分的RGB
                            ImageNew.setRGB(320,0,width,height,ImageArray6,0,width);//设置6部分的RGB
                            ImageNew.setRGB(384,0,width,height,ImageArray7,0,width);//设置7部分的RGB
                            ImageNew.setRGB(448,0,width,height,ImageArray8,0,width);//设置8部分的RGB
                           
                            File outFile = new File("F:\\Program Files/NASA/World Wind 1.3/Cache/Earth/Images/Evaluation Data/gx高清/"+F+"/"+Folder+"/"+Folder+"_"+Mark+".jpg");
                            ImageIO.write(ImageNew, "jpg", outFile);//写图片
                        } catch(Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        }
    }

}

粘贴可能有错,在下面7楼下载

修正了文件夹图片编号
 

TOP

 

re:先来支持 ,呵呵

先来支持 ,呵呵

TOP

 

re:亲爱的chenkwok,谢谢你无私的奉献...

亲爱的chenkwok,谢谢你无私的奉献!坛里有你,真的很幸运

TOP

 

re:有chenkwok在,坛里就有人气

有chenkwok在,坛里就有人气

TOP

 

re:支持老蔡

支持老蔡

TOP

 

re:用image.java拼图时请注意,...

用image.java拼图时请注意,

1.事先必须在gx高清夹中建子文件夹,否则会报路经找不到

这是我的浅薄,用java语句定义文件夹失败,

它只会在C盘java所在位置创建,

2.下载0层时,请不要用-180/-90这样的坐标,会下不到头尾各2张图从而出错

3.要想在ww里用此数据必须从0>>13层这样下数据拼图否则是没反应的

4.本人在使用的image.xml,供参考

此主题相关文件 091553.txt

TOP

 

re:修正小编号文件夹图片的错误[colo...

修正小编号文件夹图片的错误

此主题相关文件 080607.txt

TOP

 

re:请问许昌的有没有高清图,我想拼许昌的13...

请问许昌的有没有高清图,我想拼许昌的13 14层图。

TOP

 

re:慢了

慢了

TOP

 

re:顶一下[em03]

顶一下

TOP

 

re:高手寂寞

高手寂寞

TOP

 

re:新手土问:ww和dg是什么意思啊

新手土问:ww和dg是什么意思啊

TOP

 

re:小试身手

小试身手

TOP

 

re:没必要这样玩把

没必要这样玩把

TOP

 
1/1页1 跳转到
回复该主题 发表新主题
  <<上一主题 | 下一主题>>