在数字时代,360度摄影技术为摄影爱好者和专业摄影师提供了一种全新的视角来捕捉和分享他们的世界。然而,将这些沉浸式图像有效地展示在网页上,面临着分辨率、文件大小、视口尺寸、头部追踪、文本和图像层叠以及元数据共享等一系列挑战。本文将探讨如何使用Django和Bootstrap框架来展示理光THETA相机拍摄的360度图像,并分享一些360度摄影技术。
为了测试不同的图像分辨率、文件大小、视口大小、头部追踪、文本和图像层叠以及元数据共享的想法,与在线社区合作,使用Django和Bootstrap来展示理光THETA图像。网站的代码可以在GitHub上找到,实验性测试平台的地址是https://gallery.theta360.guide。这个网站不是一个用于托管图像的生产站点,而是一个用于测试想法和收集反馈的框架。
360度网站上使用的图像通常比标准图像大得多,因为观众只能通过视口看到360度图像的一小部分。例如,使用标签在Chrome浏览器窗口中显示的图像与使用
目前,注册用户使用未修改的Django界面上传图像和关于如何拍摄照片的故事。尽管界面看起来有些过时,但它足以满足测试的需求。
相册是基于Bootstrap相册示例构建的。得益于Bootstrap,相册会在移动设备上自动调整大小,将列数从3列减少到1列。
A-Frame的使用非常简单。在HTML文件的
部分,加入以下代码:
<script src="https://cdnjs.cloudflare.com/ajax/libs/aframe/0.7.1/aframe.min.js" integrity="sha256-SNDsmWBFQwJAjxLymQu5Fqh6rW4RKLJXUQboy3O0BUA=" crossorigin="anonymous"></script>
在body部分,这是调用图像的部分:
<div id="main-image">
<a-scene embedded>
<a-sky src="{{blog.image.url}}">
</a-sky>
</a-scene>
</div>
CSS样式如下:
a-scene {
height: 600px;
width: 100%;
}
#main-image {
margin: auto;
}
为了减少图像文件大小,将图像转换为webp格式。图像网格是从Bootstrap相册示例复制过来的。它使用嵌入在HTML中的Python for循环。每个图像被称为一个"工作"。每个工作都有存储在运行在托管服务器上的PostgreSQL数据库中的属性。使用简单的Django命令将整个数据库的工作传递给HTML。一旦从HTML中可以访问所有的工作,就使用Python。这部分不需要JavaScript。