Cesium 实战 - 调整饱和度、对比度等参数,加载渲染美化影像底图

news2024/10/7 11:27:17

Cesium 实战 - 调整饱和度、对比度等参数,加载渲染美化影像底图

    • 渲染美化影像底图核心代码
    • 完整代码:
    • 在线示例

本文包括渲染美化影像底图核心代码、完整代码以及在线示例。


渲染美化影像底图核心代码

这里放上核心代码:


/**
 * @todo 开启美化底图
 * @param {ImageryLayer} beautifyLayer - 需要美化的图层
 * @param {Object} options - 美化参数
 * @param {number} options.gamma - 伽马
 * @param {number} options.contrast - 对比度
 * @param {number} options.brightness - 亮度
 * @param {number} options.saturation - 饱和度
 */
function openBeautify(options) {
    options = {
        // 伽马
        gamma: 1,
        // 对比度
        contrast: 1.4,
        // 饱和度
        saturation: 1.4,
        // 明亮度
        brightness: 1.4,
        ...options
    };

    const _beautifyLayer = imageLayer;

    origin = {
        gamma: _beautifyLayer.gamma,
        contrast: _beautifyLayer.contrast,
        saturation: _beautifyLayer.saturation,
        brightness: _beautifyLayer.brightness
    };

    if (_beautifyLayer) {
        _beautifyLayer.gamma = options.gamma;
        _beautifyLayer.contrast = options.contrast;
        _beautifyLayer.saturation = options.saturation;
        _beautifyLayer.brightness = options.brightness;
    }
}

/**
 * @todo 关闭美化底图
 */
function closeBeautify() {
    const _beautifyLayer = imageLayer;

    if (_beautifyLayer) {
        _beautifyLayer.gamma = origin.gamma;
        _beautifyLayer.contrast = origin.contrast;
        _beautifyLayer.saturation = origin.saturation;
        _beautifyLayer.brightness = origin.brightness;
    }
}

完整代码:



<!DOCTYPE html>
<html lang="en">
<head>
    <!-- Use correct character set. -->
    <meta charset="utf-8"/>
    <!-- Tell IE to use the latest, best version. -->
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <!-- Make the application on mobile take up the full browser screen and disable user scaling. -->
    <meta
            name="viewport"
            content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"
    />
    <title>Cesium beauty layer</title>
    <script src="http://openlayers.vip/examples/csdn/Cesium.js"></script>
    <script src="./cesium_init.js"></script>
    <script src="http://www.openlayers.vip/examples/resources/jquery-3.5.1.min.js"></script>
    <style>
        @import url(./Widgets/widgets.css);

        html,
        body,
        #cesiumContainer {
            width: 100%;
            height: 100%;
            margin: 0;
            padding: 0;
            overflow: hidden;
        }
    </style>

    <script>
        var _hmt = _hmt || [];
        (function () {
            var hm = document.createElement("script");
            hm.src = "https://hm.baidu.com/hm.js?f80a36f14f8a73bb0f82e0fdbcee3058";
            var s = document.getElementsByTagName("script")[0];
            s.parentNode.insertBefore(hm, s);
        })();
    </script>
</head>
<body>
<button id="openBeautify" onClick="openBeautify()">美化地球</button>
<button id="closeBeautifyFunc" onClick="closeBeautify()">关闭美化</button>

<div id="cesiumContainer"></div>
<script>


    // 创建三维球
    const viewer = init();

    // 美化影像图层
    const imageLayer = viewer.imageryLayers._layers[0];
    // 原始参数
    let origin;

    console.log(viewer.imageryLayers._layers)

    /**
     * @todo 开启美化底图
     * @param {ImageryLayer} beautifyLayer - 需要美化的图层
     * @param {Object} options - 美化参数
     * @param {number} options.gamma - 伽马
     * @param {number} options.contrast - 对比度
     * @param {number} options.brightness - 亮度
     * @param {number} options.saturation - 饱和度
     */
    function openBeautify(options) {
        options = {
            // 伽马
            gamma: 1,
            // 对比度
            contrast: 1.4,
            // 饱和度
            saturation: 1.4,
            // 明亮度
            brightness: 1.4,
            ...options
        };

        const _beautifyLayer = imageLayer;

        origin = {
            gamma: _beautifyLayer.gamma,
            contrast: _beautifyLayer.contrast,
            saturation: _beautifyLayer.saturation,
            brightness: _beautifyLayer.brightness
        };

        if (_beautifyLayer) {
            _beautifyLayer.gamma = options.gamma;
            _beautifyLayer.contrast = options.contrast;
            _beautifyLayer.saturation = options.saturation;
            _beautifyLayer.brightness = options.brightness;
        }
    }

    /**
     * @todo 关闭美化底图
     */
    function closeBeautify() {
        const _beautifyLayer = imageLayer;

        if (_beautifyLayer) {
            _beautifyLayer.gamma = origin.gamma;
            _beautifyLayer.contrast = origin.contrast;
            _beautifyLayer.saturation = origin.saturation;
            _beautifyLayer.brightness = origin.brightness;
        }
    }

</script>
</body>
</html>



在这里插入图片描述

在线示例

Cesium 在线示例:气泡框视频以及自定义视频材质

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1115995.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云oss丨You have no right to access this object because of bucket acl.

错误&#xff1a;You have no right to access this object because of bucket acl. ​ ​ 今天折腾oss的时候遇到这个问题&#xff0c;我以为是我没加白名单&#xff0c;后来想了下应该是使用阿里云OSS上传文件服务时报的错&#xff0c;新建的子用户AccessKey没有配置相应的管…

2023年最佳项目管理软件排行榜揭晓!

根据网络数据调查结果显示&#xff0c;今年有77%的组织将效率列为优先事项&#xff0c;而82%的领导人确认投资于新的项目管理和工作管理方案以提高效能。然而随着对价值的重新关注&#xff0c;选择适合的工程项目管理软件变得比以往任何时候都更加重要。好消息是通过对39个主要…

拿下域控主机

1.装域控环境 是dns环境 域控dns127.0.0.1 二.搭建 加入域 新建域用户 密码和域内主机一样 添加账户和密码 添加到域管理 这个随便 为了后期实验添加上 添加web和远程桌面 域控 用户添加到域 配置dns 攻击 kali 是公网 配置 木马服务器 哈希值 win10 客…

协同过滤推荐算法UserCF、ItemCF

目录 相似度计算基于用户的协同过滤&#xff08;UserCF&#xff09;算法评估基于物品的协同过滤&#xff08;ItemCF&#xff09;协同过滤算法的权重改进协同过滤算法的问题分析思考学习参考 相似度计算 杰卡德&#xff08;Jaccard&#xff09;相似系数 Jaccard 系数是衡量两个…

AMD推出锐龙Threadripper 7000处理器 96核重回HEDT市场

AMD今天正式推出了锐龙Threadripper 7000系列处理器&#xff0c;而且这次不光只有面向工作站的锐龙Threadripper PRO 7000WX系列&#xff0c;还有面向HEDT平台的锐龙Threadripper 7000X系列。 上一代的锐龙Threadripper PRO 5000是去年年初推出的&#xff0c;相隔已经有一年半…

一次说全COLA应用架构

一&#xff0c;为什么需要好的应用架构 上图比较清晰地说明了好的应用架构的作用——去繁为简&#xff0c;化无序为有序。 二&#xff0c;关于COLA的几种定义 1&#xff0c;原版 GitHub - alibaba/COLA: &#x1f964; COLA: Clean Object-oriented & Layered Architec…

【Linux】文件IO基础知识——上篇,文件描述符是什么??系统缓冲区又是啥??

目录 前文 一&#xff0c; 系统级——文件操作接口 a. open b. close c. write d. read 二&#xff0c;接口理解 那文件描述符——fd是什么呢&#xff1f; 三&#xff0c;文件描述符分配规则 原理 四&#xff0c;重定向——dup2 简易shell——重定向 五&#xff0c…

vue3+ts 使用vue-print-nb 打印功能【完美】

安装 npm i vue3-print-nb -s我的版本 0.1.4 注册 import { createApp } from vue import pinia from ./store import router from ./router import ./assets/css/main.scss import { globalRegister } from /global/register import ant-design-vue/es/message/style/css …

织造业的数字安全守护者:深入了解迅软DSE数据加密

客户简要介绍 某织造企业成立于2004年&#xff0c;工厂位于苏州平望&#xff0c;公司目前拥有先进纺织设备330台套和日本瑞士等前道配套设备&#xff0c;公司占地33亩、具有现代化标准厂房办公楼等3万平米。 某织造企业面料、功能性面料、新材料面料的生产商&#xff0c;公司坚…

UE5 ChaosVehicles载具 实现大漂移 (连载四)

载具设置成前驱模式 前轮摩擦力倍增x5 后轮摩擦力倍增x0.5

Linux 基础操作手记三(内存篇)

Linux 基础操作手记三 释放内存虚拟机彻底无网络测试网速设置虚拟内存交换空间未使用虚拟机设置虚拟内存无法开机问题GParted - 分配内存系统盘扩容自己 释放内存 sync && echo 3 > /proc/sys/vm/drop_caches 虚拟机彻底无网络 还原默认设置&#xff0c;静静的等待…

观测云产品更新 | 优化 SSO 管理、新增监控器类型、优化场景等

本期更新主要分为观测云更新、观测云部署版更新、DataKit 更新、集成更新等内容。详情见官网文档&#xff1a;https://docs.guance.com/release-notes/ 观测云更新 付费计划与账单 计费项【数据转发】统计逻辑变更为 “按照数据转发规则” 统计转发数据量大小。 SSO 管理 …

作为决策者,谁能拒绝这样一张数据可视化报表

数据分析是决策的一大助力&#xff0c;因此作为企业的管理决策者都会希望获得一份直观易懂、支持灵活自助分析的数据可视化报表&#xff0c;比如说由奥威BI数据可视化软件制作的这张BI报表。 名称&#xff1a;零售业数据分析驾驶舱 来源&#xff1a;奥威BI零售数据分析方案 …

网络通信 三要素

网络通信的三要元素 IP地址端口号协议package InetAddressTest;import java.net.InetAddress;public class InetAddress1 {public static void main(String[] args)throws Exception {// InetAddress的使用//1:获取本机IP地址对象InetAddress ip1 InetAddress.getLocalHost()…

智慧公厕:打造未来城市公共设施的智慧选择

随着信息技术的不断发展&#xff0c;城市公共设施需要实现个性化、高效化和智能化&#xff0c;其中包括公共厕所。智慧公厕是一种结合物联网、互联网、人工智能、云计算、大数据和传感感知等技术的新型公厕&#xff0c;旨在提高公共厕所管理效率、跨区域跨系统的联网管理、自动…

2023/10/30-LED灯驱动开发

k1.c #include <linux/init.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/uaccess.h> #include <linux/io.h> #include "head.h" char kbuf[128] {}; unsigned int major; //定义三个指针指向映射后的虚拟内…

基于北方苍鹰优化的BP神经网络(分类应用) - 附代码

基于北方苍鹰优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于北方苍鹰优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.北方苍鹰优化BP神经网络3.1 BP神经网络参数设置3.2 北方苍鹰算法应用 4.测试结果…

【C++ Primer Plus学习记录】使用new创建动态结构

在运行时创建数组优于在编译时创建数组&#xff0c;对于结构&#xff08;同一个结构可以存储多种类型的数据。&#xff09;也是如此。需要在程序运行时为结构分配所需的空间&#xff0c;这也可以使用new运算符来完成。通过使用new&#xff0c;可以创建动态结构。同样&#xff0…

2023.10.20期中考核复现(misc)

杂项题就是2023陇剑杯的题目&#xff0c;可能还是不感兴趣吧&#xff0c;自从打完蓝帽杯之后除了web以外什么都没看 flow analysis 1 题目&#xff1a;What is the backdoor file name that comes with the server?( Including file suffix) 服务器附带的后门文件名是什么&am…

CDN加速与DDoS攻击防护:保障网站稳定与用户体验

在今天的数字时代&#xff0c;网络性能和安全性是网站运营的两个至关重要的方面。CDN&#xff08;内容分发网络&#xff09;不仅可以加速网站的内容交付&#xff0c;还可以在防护DDoS&#xff08;分布式拒绝服务&#xff09;攻击方面发挥关键作用。本文将深入探讨CDN如何加速网…