当前位置:   article > 正文

krpano 功能化 -- linux 部署_linux安装krpano

linux安装krpano

本文仅供技术交流。

在前面的文章中:基于java后端的 krpano 功能化 已经实现在win平台将krpano功能化,这次我将krpano迁移至服务器:ubuntu 16.04 server。


以win的经验为基础,这里只需解决2个问题:
  • linux上krpano的安装与注册

  • 在linux上,用java执行krpano命令

(1)linux上krpano的安装与注册

我以krpano-1.19-pr10为例,不必无官网下载,在这里下: http://pan.baidu.com/s/1bppkEbd 上传到服务器解压就可以了(里面有注册码)。可是,在生成全景图时,会有水印,怎么解决呢?在解压的文件夹里,有个叫Serial.txt文件,是一个注册码。只需要在服务器注册这个注册码就行了,每个用户都注册一遍。

我先把krpano-1.19-pr10上传到/opt目录下,unrar 解压,然后执行krpanotools register命令注册机器:

root@S189919:/opt/krpano-1.19-pr10# /opt/krpano-1.19-pr10/krpanotools register FXsqTqaGNSZER5dSETEm+VzQEh9sWSa5DZMFsSmMxYV9GcXs8W3R8A/mWXrGNUceXvrihmh28hfRF1ivrW0HMzEychPvNiD8B/4/ZzDaUE9Rh6Ig22aKJGDbja1/kYIqmc/VKfItRE2RTSOIbIroxOtsz626NIpxWksAAifwhpNwuPXqDQpz2sRUMBzoPqZktpkItoSenN2mKd8Klfx7pOuB6CIK3e1CDXgyndqOt2mWybLZcU/wfJVAecfxk15ghiqrzaDsbqrdABDowg==

Code registered.
root@S189919:/opt/krpano-1.19-pr10# exit
exit
wen@S189919:~$ cd /opt/krpano-1.19-pr10/
wen@S189919:/opt/krpano-1.19-pr10$ /opt/krpano-1.19-pr10/krpanotools register FXsqTqaGNSZER5dSETEm+VzQEh9sWSa5DZMFsSmMxYV9GcXs8W3R8A/mWXrGNUceXvrihmh28hfRF1ivrW0HMzEychPvNiD8B/4/ZzDaUE9Rh6Ig22aKJGDbja1/kYIqmc/VKfItRE2RTSOIbIroxOtsz626NIpxWksAAifwhpNwuPXqDQpz2sRUMBzoPqZktpkItoSenN2mKd8Klfx7pOuB6CIK3e1CDXgyndqOt2mWybLZcU/wfJVAecfxk15ghiqrzaDsbqrdABDowg==

Code registered.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
这样,就会在用户的~/下生成一个.krpanolicense文件


这里写图片描述


有了krpanolicense,就不用担心会有水印和版权信息了。


(2)在linux上,用java执行krpano命令

因为java本身是跨平台的第一语言,所以选择java,就等于成功了一半。但在linux上,用java的runtime.exec与在win上的调用命令不同,文件路径也不同,这是最需要注意的!

以/opt/test/test.jpg的图片为例

krpano在linux执行的命令是:

 /opt/krpano-1.19-pr10/krpanotools makepano -config=templates/vtour-normal.config /opt/test/test.jpg
  • 1

而win是:

cmd /c start f:\\krpano\\krpano-1.19-pr10-postable\\krpanotools32.exe makepano -config=\\templates\\vtour-normal.config  f:\\test\\test.jpg
  • 1

linux的文件目录是”/ “,win是”\\”。

这是完整的krpano工具类:CmdBat

package com.xforce.krpano.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class CmdBat {
   

    /*public static void main(String[] args) {
        String dpath = "D:\\apache-tomcat-8.0.33\\webapps\\krpano\\vshow";
        String file = "353";
        String[] fn1 = {};
        String[] fn2 = {};
        String title = "yyyyyyyy";
        String temppath = "f:\\temp-room\\";
        String music = "vshow/backgroundmusic/default.mp3";
        try {
            setKrpano(dpath, file,temppath, fn1, fn2, title,music);
        } catch (InterruptedException e) {
            e.printStackTrace();
            System.out.println("上传失败");
        }

    }*/

    public static void setKrpano(final String dpath, final String file,final String temppath, 
            final String[] fn1, final String[] fn2, final String title,final String music)
            throws InterruptedException {
        String path = temppath + file;
        File targetFile = new File(path);  
        if(!targetFile.exists()){  
            targetFile.mkdirs();  
        }  
        String ex = "/opt/krpano-1.19-pr10/krpanotools makepano -config=templates/vtour-normal.config "
                + path + "/*.jpg";
        Runtime runtime = Runtime.getRuntime();
        String[] cmd = new String[]{
  "/bin/sh","-c", ex };
        boolean b = true;
        Process p = null;
        try {
            p = runtime.exec(cmd);
        } catch (Exception e) {
            b = false;
        }
        
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/112999
推荐阅读
相关标签
  

闽ICP备14008679号