【问题标题】:Openseadragon, DeepZoom, WordPressOpenseadragon, DeepZoom, WordPress
【发布时间】:2020-05-26 19:34:30
【问题描述】:

尝试为 WordPress 网站设置 OpenSeadragon。现在只是测试并尝试使缩放功能起作用。

  • 我已包含OpenSeadragon 脚本以查看DZI 图像。我觉得我很好。
  • 我的问题实际上是从高分辨率图像生成 DZI 图像。我该怎么做?可以即时完成吗?

我尝试包含 DeepZoom 磁贴生成器但没有成功,并继续收到“致命错误:未捕获的错误:找不到类 'League\Flysystem\Filesystem'”错误。

我看到的唯一可能工作的其他 DZI 生成器是一个无法工作的 Windows 桌面应用程序,我在 Mac 上。

这是我目前所拥有的(仅处理 openseadragon 和 deepzoom 提供的示例):

我的函数文件中包含 Deepzoom.php 和 DeepzoomFactory.php。

<div id="primary" class="content-area zoom">
    <main id="main" class="site-main">

    <?php
    // Setup Deepzoom
    $deepzoom = Jeremytubbs\Deepzoom\DeepzoomFactory::create([
        'path' => '/wp-content/uploads/DZI/ready/', // Export path for tiles
        'driver' => 'imagick', // Choose between gd and imagick support.
        'format' => 'jpg',
    ]);
    // folder, file are optional and will default to filename
    $response = $deepzoom->makeTiles('/wp-content/uploads/DZI/oklahoma.jpg');
    ?>

    <div id="openseadragon1" style="width: 800px; height: 600px;"></div>
    <script src="<?php echo get_template_directory_uri() ; ?>/lib/openseadragon/openseadragon.min.js"></script>
    <script type="text/javascript">
        var viewer = OpenSeadragon({
            id: "openseadragon1",
            prefixUrl: "/wp-content/themes/truelook/lib/openseadragon/images/",
            tileSources: <?php echo $response; ?>
        });
    </script>

非常欢迎任何指出我正确方向的建议或意见。谢谢!

【问题讨论】:

    标签: wordpress deepzoom openseadragon


    【解决方案1】:

    libvipsdzsave,可以非常快速的制作任意大小的deepzoom金字塔。有一个关于它的chapter in the docs

    您可以在带有homebrew、macports、fink 等的mac 上安装。例如:

    brew install vips
    

    然后用以下方法制作金字塔:

    vips dzsave oklahoma.jpg x
    

    它会创建x_filesx.dzi(当然,使用不同的名称)。

    您还可以使用php-vips(libvips 的 PHP 绑定)来创建金字塔。比如:

    $im = Vips\Image::newFromFile('oklahoma.jpg', 
        ['access' => Vips\Access::SEQUENTIAL]);
    $im->dzsave('x');
    

    对于动态生成来说,它可能足够快,这取决于图像大小、格式和您的要求。在这台 2015 年的笔记本电脑上,我看到了 10k x 10k 像素 RGB 图像:

    $ /usr/bin/time -f %M:%e vips dzsave wtc.jpg x
    98856:3.93
    

    所以 100mb 的内存和 4s 的运行时间。

    【讨论】:

      【解决方案2】:

      你看过这个 Zoom OpenSeadragon plugin 吗? 它已过时,但它可能会帮助您使支持的操作更顺畅。

      【讨论】:

        【解决方案3】:

        要使 deepzoom 运行,您应该使用 composer 安装依赖项。 首先克隆 deepzoom 存储库。进入 repo 目录并运行 php composer install 命令。 Composer Docs to install dependencies 安装完成后,在代码上方添加这一行:

        require 'deepzoom/vendor/autoload.php';
        

        注意您应该为“路径”和文件名参数使用绝对路径。 示例:

        $deepzoom = Jeremytubbs\Deepzoom\DeepzoomFactory::create([
            'path' => '/home/username/public_html/wp-content/uploads/DZI', // Export path for tiles. Do not add / end of path
            'driver' => 'imagick', // Choose between gd and imagick support.
            'format' => 'jpg',
        ]);
        
        $response = $deepzoom->makeTiles('/home/username/public_html/wp-content/uploads/2020/1/image.jpg');
        

        不要在您的模板文件中包含此代码。创建另一个 .php 文件并传递文件名。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多