从预览窗口中获取图像或画布

Posted

技术标签:

【中文标题】从预览窗口中获取图像或画布【英文标题】:Getting an image or canvas out of the preview window 【发布时间】:2016-07-24 15:44:07 【问题描述】:

我正在使用一个名为cropit 的酷工具。这是我已经拥有的:

http://code.reloado.com/ejiyov3

现在,通过单击“导出”按钮,我想更改 window.open(imageData) 操作并将预览图像作为所有这些图像下方的单独站立图像。换句话说 - 我想拍摄它的快照,每次我更改预览并单击按钮时,快照也会更改。

知道如何处理这个吗?

【问题讨论】:

“获取预览图”是什么意思 通过上传图片,您可以在预览窗口中移动和缩放它。预览图像是指预览的状态。 您可以将data URI 设置存储在var imageData = $('#image-cropper').cropit('export'); var imageData = $('#image-cropper').cropit('export').toDataURL 喜欢这个? 不,$('#image-cropper').cropit('export') 已经返回 data URI。试试var imageData = $('#image-cropper').cropit('export');console.log(imageData) 【参考方案1】:

您可以创建一个<img> 元素,将img 元素src 设置为imageData,将新创建的图像附加到文档中

<!DOCTYPE html>
<html>

<head>
  <script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
  <script src="https://cdn.jsdelivr.net/jquery.cropit/0.5.1/jquery.cropit.js">
  </script>
  <meta charset=utf-8 />
  <title>code.reloado.com</title>
  <!--[if IE]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
  <style>
    article,
    aside,
    figure,
    footer,
    header,
    hgroup,
    menu,
    nav,
    section 
      display: block;
    
    .cropit-preview 
      width: 360px;
      height: 360px;
    
  </style>
</head>

<body>

  <!-- This wraps the whole cropper -->

  <div id="image-cropper">

    <!-- This is where the preview image is displayed -->
    <div class="cropit-preview"></div>

    <!-- This range input controls zoom -->
    <input type="range" class="cropit-image-zoom-input" />

    <!-- This is where user selects new image -->
    <input type="file" class="cropit-image-input" />


    <button class="export">Export</button>

    <script>
      $("#image-cropper").cropit();
      $('.export').click(function() 
        var imageData = $('#image-cropper').cropit('export');
        console.log(imageData);
        $("<img>", 
          src: imageData
        ).appendTo("body")
      );
    </script>

  </div>
</body>

</html>

【讨论】:

以上是关于从预览窗口中获取图像或画布的主要内容,如果未能解决你的问题,请参考以下文章

iOS:在相机预览期间捕获图像而不采取行动

使用 JavaScript/jQuery 从输入类型“文件”中获取二进制图像数据,以便在 WebMatrix 中使用 AJAX 进行图片预览 [重复]

SwiftUI 画布预览为一个视图显示多个视图

Fabricjs:显示横幅的预览

如何从数据库中获取图像并在 laravel 中使用 ajax 以编辑形式预览它?

SwiftUI:使用条件布局在画布中显示预览