使用KrpanoToolJS在浏览器切图的实例详解

 更新时间:2022年10月10日 09:53:48   作者:非洲难民  
这篇文章主要介绍了使用KrpanoToolJS在浏览器切图的实例详解,大概是需要在浏览器中将全景图转为立方体图、多层级瓦片图,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、功能介绍

在浏览器中将全景图转为立方体图、多层级瓦片图

备注:

  • 切图的逻辑、缩略图、预览图均以krpano为标准,如果是使用krpano来开发全景的,可以直接使用,暂时未开发自定义切图的参数,后续可能会开放。
  • 目前仅支持jpeg/jpg20000x10000分辨率以内的图片,当然这已经是覆盖了80%的使用场景了
  • 切图速度快于krpano命令行工具
  • 如果需要更高的要求还是可以使用krpano工具,也可以混着使用

如下功能:

  • 生成立方体图片(6个面)
  • 生成多分辨率瓦片图(层级根据图片分辨率自动调节)
  • 生成场景预览图preview.jpg
  • 生成场景缩略图thumb.jpg
  • 生成krpano代码:场景代码、立方体image节点代码、多分辨率image节点代码(包含简写和完整两种写法)
  • 生成的图片和场景,均无水印

二、如何使用

安装依赖

npm i @krpano/js-tools

切图,示例:在vue中的使用:

<template>
    <input type="file" name="test" @change="onFileChange" accept="image/jpeg">
</template>

<script>

// (可选)用于下载文件
import FileSaver from 'file-saver'
// 导入
import KrpanoToolJS from '@krpano/js-tools'

export default {
    methods: {
        onFileChange(e) {
            const file = e.target.files[0]
            if (!file) return
            
            const krpanoTool = new KrpanoToolJS()
            krpanoTool.makeTiles(file).then(result => {
                // result 的具体值看下面介绍
                // 可选,可以使用FileSaver,把内容下载下来
                FileSaver.saveAs(result.content)
            })
        },
    }
}
</script>

切图的返回值

// result对象
interface IConvertPanoResult {
    dirName: string;  // 生成根目录文件夹名称
    content: Blob; // 场景图片、缩略图、预览图 的Blob文件,可以用于上传到后台或者下载到本地
    duration: string | number; // 单次切图时长
    code: {  // 代码
        scene: string;  // 整个场景的代码
        cubeImage: string; // 立方体切图image节点的代码
        tileImage: string; // 多分辨率切图image节点的代码
        shortTileImage: string; // (简写)多分辨率切图image节点的代码
    };
}

切图方法

// 生成立方体图(6张)、缩略图、预览图
makeCube(file: File): Promise<IConvertPanoResult>;

// 生成多分辨率瓦片图、缩略图、预览图
makeTiles(file: File): Promise<IConvertPanoResult>;

// 同时生成立方体图、多分辨率瓦片图
makeCubeAndTiles(file: File): Promise<IConvertPanoResult>;

到此这篇关于使用KrpanoToolJS在浏览器切图的实例详解的文章就介绍到这了,更多相关KrpanoToolJS浏览器切图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaScript和jQuery制作光棒效果

    JavaScript和jQuery制作光棒效果

    本文主要介绍了使用javaScript和jQuery制作光棒效果的示例代码,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • 浅谈js中的三种继承方式及其优缺点

    浅谈js中的三种继承方式及其优缺点

    下面小编就为大家带来一篇浅谈js中的三种继承方式及其优缺点。小编觉得挺不错的,现在就分享给大家,也给大家做个参考,一起跟随小编过来看看吧
    2016-08-08
  • javascript  数组排序与对象排序的实例

    javascript 数组排序与对象排序的实例

    这篇文章主要介绍了javascript 数组排序与对象排序的实例的相关资料,需要的朋友可以参考下
    2017-07-07
  • JavaScript事件处理的方式(三种)

    JavaScript事件处理的方式(三种)

    最近这段时间因为每天要修改网站,为网站做特效,所以看了很多的js接触事件,自己只会使用一小部分,有时用的时候也比较混乱,现在系统的整理了一下,特此分享到脚本之家平台供大家参考下
    2016-04-04
  • ES6扩展运算符用法实例分析

    ES6扩展运算符用法实例分析

    这篇文章主要介绍了ES6扩展运算符用法,结合实例形式分析了ES6扩展运算符的功能、使用方法与相关注意事项,需要的朋友可以参考下
    2017-10-10
  • JavaScript字符和ASCII实现互相转换

    JavaScript字符和ASCII实现互相转换

    这篇文章主要介绍了JavaScript字符和ASCII实现互相转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • JavaScript 变量、作用域及内存

    JavaScript 变量、作用域及内存

    这篇文章主要介绍了JavaScript 变量、作用域及内存,需要的朋友可以参考下
    2015-04-04
  • 在javascript中如何得到中英文混合字符串的长度

    在javascript中如何得到中英文混合字符串的长度

    本文为大家介绍下Javascript中如何得到中英文混合字符串的长度,下面有个不错的教程,感兴趣的朋友可以参考下
    2014-01-01
  • Js自定义多选框效果的实例代码

    Js自定义多选框效果的实例代码

    本篇文章主要介绍了Js自定义多选效果的实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 微信小程序实现皮肤功能(夜间模式)

    微信小程序实现皮肤功能(夜间模式)

    这篇文章主要给大家介绍了关于利用微信小程序实现皮肤功能,也就是实现夜间模式的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06

最新评论