画布图像的图像效果不通过 php 上传保存,但适用于下载同一画布文件

2024-04-22

这是显示该问题的 YouTube 视频:https://www.youtube.com/watch?v=znzLQSYlsKM https://www.youtube.com/watch?v=znzLQSYlsKM.

我给出了视频描述中涉及的所有代码的链接。

我正在使用 js 库对图像应用影响。然后,我触发一个事件,为用户提供下载链接,并使用图像的 base64 动态创建一个表单元素。然后我将其传递给 php 文件并将其保存到文件夹中。您可以下载的图像应用了效果,但保存的图像则没有应用效果。问题是它们都是同一个文件。

JS Code:

function showDownload(canvas){
    //this is how i send it to my main page and use ajax script to upload to the php file.

    var url = canvas.toDataURL("image/png;base64;");
    $('<input/>').attr({
         type: 'hidden', id: 'fileroast', name: 'fileroast', value: url
    }).appendTo('#output');

    // this is how i link the download file
    downloadImage.off('click').click(function(){
        var url = canvas.toDataURL("image/png;base64;");
        downloadImage.attr('href', url);
    }).fadeIn();

}

过滤器代码:

filters.click(function(e){
    e.preventDefault();
    var f = $(this);
    if(f.is('.active')){
        // Apply filters only once
        return false;
    }
    filters.removeClass('active');
    f.addClass('active');
    // Clone the canvas
    var clone = originalCanvas.clone();
    // Clone the image stored in the canvas as well
    clone[0].getContext('2d').drawImage(originalCanvas[0],0,0);
    // Add the clone to the page and trigger
    // the Caman library on it
    photo.find('canvas').remove().end().append(clone);
    var effect = $.trim(f[0].id);
    Caman(clone[0], function () {
        // If such an effect exists, use it:
        if( effect in this){
            this[effect]();
            this.render();
            showDownload(clone[0]);
        }
        else{
            hideDownload();
        }
    });
});
// Use the mousewheel plugin to scroll
// scroll the div more intuitively
filterContainer.find('ul').on('mousewheel',function(e, delta){
    this.scrollLeft -= (delta * 50);
    e.preventDefault();
});

这就是答案。

    function submitForm() {

      var fd = '';



      if(get_user != logged_username){



        }else{

        var d = new Date();

        var time = d.getTime();

        var fd = new FormData(document.getElementById("fileinfo"));



        $.ajax({

          url: "upload_photo.php",

          type: "POST",

          data: fd,

          enctype: 'multipart/form-data',

          processData: false,  // tell jQuery not to process the data

          contentType: false   // tell jQuery not to set contentType



        }).done(function( data ) {



            if (data.indexOf("Invalid") >= 0) { 

                alert('invalid file type, must be jpeg, jpg, or png.');

            }else{

              console.log(data);

              var post = {"pic_location":data, "time":time, "username": logged_username};

              var json_data = post;

              Cynergi.insert('http://thewaywardjourney.com:3000/profile_pictures', json_data);

              $( "#fileroast" ).remove();

            //this is where we save the photos location to the db for retrieveal.

            }

        });

        return false;

    }

   }

脚本.js

var apply = $('#apply');



function showDownload(canvas){

    apply.off('click').click(function(){

        var url = canvas.toDataURL("image/png;base64;");

        $('<input/>').attr({type: 'hidden', id: 'fileroast', name: 'fileroast', value: url}).appendTo('#output');

        console.log(url);   

        console.log('apply');

    }).fadeIn();

}



function hideDownload(){

    downloadImage.fadeOut();

}

模态 HTML

<div id="uploadPic" class="modal fade" >

  <form method="post" id="fileinfo" name="fileinfo" onsubmit="return submitForm();">

    <div class="modal-dialog">

        <div class="modal-content">

            <div class="modal-header" style="background:#f3f3f3;">

                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>

                <h4 class="modal-title" style="color:black;">Choose picture to upload as profile pic.</h4>



            </div>

            <div class="modal-body">



              <div id="photo">





              </div>



              <div id="filterContainer" style='width:400px;'>

                <ul id="filters" style='width:400px;'>

                  <li> <a href="#" id="normal">Normal</a> </li>

                  <li> <a href="#" id="vintage">Vintage</a> </li>

                  <li> <a href="#" id="lomo">Lomo</a> </li>

                  <li> <a href="#" id="clarity">Clarity</a> </li>

                  <li> <a href="#" id="sinCity">Sin City</a> </li>

                  <li> <a href="#" id="sunrise">Sunrise</a> </li> 

                  <li> <a href="#" id="crossProcess">Cross Process</a> </li>

                  <li> <a href="#" id="orangePeel">Orange Peel</a> </li>

                  <li> <a href="#" id="love">Love</a> </li>

                  <li> <a href="#" id="grungy">Grungy</a> </li>

                  <li> <a href="#" id="jarques">Jarques</a> </li>

                  <li> <a href="#" id="pinhole">Pinhole</a> </li>

                  <li> <a href="#" id="oldBoot">Old Boot</a> </li>

                  <li> <a href="#" id="glowingSun">Glowing Sun</a> </li>

                  <li> <a href="#" id="hazyDays">Hazy Days</a> </li>

                  <li> <a href="#" id="herMajesty">Her Majesty</a> </li>

                  <li> <a href="#" id="nostalgia">Nostalgia</a> </li>

                  <li> <a href="#" id="hemingway">Hemingway</a> </li>

                  <li> <a href="#" id="concentrate">Concentrate</a> </li>

                </ul>

              </div>

              <div id='output_file'></div>

              <div id="output"></div>



            </div>

            <div class="modal-footer">

              <button id='apply' class="btn btn-info">Upload</button>

                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>



            </div>

        </div>

    </div>

  </form>

</div>    

php

<?php

    // requires php5

    define('UPLOAD_DIR', 'images/profile_images/');

    $img = $_POST['fileroast'];

    $img = str_replace('data:image/png;base64,', '', $img);

    $img = str_replace(' ', '+', $img);

    $data = base64_decode($img);

    $files = UPLOAD_DIR . uniqid() . '.png';

    $success = file_put_contents($files, $data);

    print $files;

    //print $file ? 'default':'images/profile_images/default.png';

?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

画布图像的图像效果不通过 php 上传保存,但适用于下载同一画布文件 的相关文章

  • 如何用方向键移动div

    我想使用 jQuery 用箭头键移动 div 所以右 左 下 上 找到了我想要完成的演示here http atomicrobotdesign com blog htmlcss move objects around the canvas
  • 无法使用 jQuery 添加两个小数

    我试图将两个小数值相加 但返回的总和是纯整数 怎么了 我找不到它 欢迎任何帮助 jQuery delivery method ship select change function var cost jQuery this val jQue
  • 根据复选框显示/隐藏输入字段[重复]

    这个问题在这里已经有答案了 如果单击该复选框 它将显示一个输入字段 到目前为止它正在工作 但如果未选中该复选框 它应该隐藏它 我该怎么做 div class checkbox div
  • 启动 jQuery UI 选项卡,没有选项卡处于活动状态且所有面板都隐藏

    我在用着jQuery UI 选项卡 http jqueryui com tabs 在一个项目中 我想知道是否有一种简单的方法可以在文档加载时隐藏所有面板 直到单击选项卡为止 默认情况下 jQuery UI 以激活的选项卡和可见的相应面板开始
  • 在各种分辨率下通过百分比宽度将根 div 居中

    我需要通过基于百分比的宽度而不是基于像素的宽度将根 div 居中 container width 80 margin 0px auto 它将容器相对于页面居中 并在 1366 706 分辨率下正常工作 但在 1280 1024 下不起作用
  • 如何使用jsPDF设置图像以适合页面宽度?

    有什么办法可以解决这个问题吗 我尝试以毫米为单位设置宽度和高度 如何将其设置为全角 您可以获取 PDF 文档的宽度和高度 如下所示 var doc new jsPDF p mm a4 var width doc internal pageS
  • method_存在于父类php中

    我正在尝试使用 php 函数 method exists 但我需要检查该方法是否存在于对象的父类中 so class Parent public function myFunction class Child extends Parent
  • php 中接口的用途是什么?

    如果我在 PHP 中定义一个接口 以及一个创建该接口实例的工厂类 有什么方法可以强制客户端代码仅使用该接口而不使用底层具体类 根据我的理解 客户也可以实际使用底层类中的任何公共函数 字段 这是一个例子
  • jquery 在元素之间包裹内容

    我有一些内容由 hr 标记 我需要做的是将开始标记和结束标记之间的所有内容包装起来 鉴于此标记 hr class begin some content
  • 查找 JavaScript 中函数参数的数量[重复]

    这个问题在这里已经有答案了 可能的重复 获取函数的元数 https stackoverflow com questions 4848149 get a functions arity 假设我有 function a x function b
  • 将文本数据作为表单中的文件发布

    是否可以从 html 表单中发布一些作为文件输入类型的字符串的 XML 数据 情况是我有一个像这样的表格 form action target php method post enctype multipart form data gt
  • jquery 中 DOM 元素的手动垃圾回收是否可以提高浏览器性能?

    在性能范围内 删除不再需要的元素是否有意义 或者浏览器是否对代码中未进一步引用的 dom 元素执行自动垃圾收集 some element fadeOut 1000 function el el remove lt does this mak
  • 自定义 php 论坛 - 显示新的/未读的帖子

    我自己使用 php 编写了一个自定义论坛脚本 我决定不使用 phpbb 和其他工具 因为我希望我所做的事情具有 100 的灵活性 不过我遇到了一个问题 如何向用户显示帖子是否是新的 未读的 我想到了两种解决方案 1 饼干 2 数据库 我不想
  • 为什么行框之间有空格,而不是由于半行距?

    在下面的代码示例中 您将看到垂直流动的之间有空白spans是 每个之间有空白line box 我想首先声明这与之间的差距无关inline block框 甚至是结果半领先 https www w3 org TR CSS21 visudet h
  • Cypress.io 如何处理异步代码

    我正在将旧的水豚测试转移到 cypress io 因为我们的应用程序正在采用 SPA 方式 在我们的案例中 我们有超过 2000 个测试 涵盖了很多功能 因此 测试功能的常见模式是让用户创建并发布报价 一开始我写了 cypress 浏览页面
  • 防止文本环绕浮动图像

    我目前有一个向左浮动的图像 以及位于其右侧的一段文本 该文本块当前不是浮动的 它只是位于 HTML 中的图像之后 因此 当它变得更长时 它最终会踢到图像下方的左侧以继续 如何才能使文本块始终保持在图像的右侧 以便图像和文本的行为就像两个并排
  • 用空字符串替换状态:Javascript

    我有这个网址 website com con blog true 我在 javascript 中所做的是 if getURLparams blog RandomFunction change the url window history r
  • 更改哈希值而不触发 hashchange 事件

    我使用哈希来动态加载内容 为了使后退按钮正常工作 我正在捕获哈希更改 然而 有时我需要更改哈希值而不触发哈希更改函数 例如 当页面重定向到服务器端时 我需要在内容返回后更新哈希值 我想出的最佳解决方案是取消绑定 hashchange 事件
  • “x modulo y”的结果是什么?

    引用 ECMAScript 规范第 5 2 节 符号 x modulo y y 必须是有限且非零 计算 值 k 与 y 具有相同的符号 或零 使得 abs k 因此 如果 y 为正 则 x modulo y 的结果 k 为正 无论 x 的符
  • 如何将jquery.post中的数据发送到使用ViewModel作为参数的mvc控制器?

    我正在使用 ASP NET MVC 编写应用程序 我有带有操作的控制器 它使用一些 ViewModel 作为参数 如何使用 jquery post 将表单数据发送到该 mvc 控制器 post Yourcontroller YourActi

随机推荐

  • 当高阶参数保留时,如何删除模型中的低阶参数?

    问题 只要高阶参数 即交互作用 保留在模型中 我就无法删除模型中的低阶参数 例如主效应参数 即使这样做 模型也会被重构 并且新模型不会嵌套在更高的模型中 请参阅以下示例 因为我来自我使用的方差分析 contr sum d lt data f
  • .NET 有成功的 profibus 通信吗?

    有没有人聊成功了profibus http www profibus com 来自 NET 应用程序 如果您这样做了 您使用什么设备 卡来完成此操作 应用程序是什么 以及您是否使用任何类型的预先存在或可用的代码 我们没有使用过Profibu
  • 如何通过 Python 将 csv 数据帧上传到 azure?

    我正在使用 Python 和 Pyspark 并且想要将 CSV 文件上传到 azure blob 存储 我已经有一个由代码生成的数据框 df 我想做的是接下来的事情 Dataframe generated by code df Creat
  • C++ 特征值/向量分解,只需要快速的前n个向量

    我有一个 3000x3000 协方差相似矩阵 在其上计算特征值 特征向量分解 它是一个 OpenCV 矩阵 我使用cv eigen 完成工作 然而 我实际上只需要前 30 个特征值 向量 我不关心其余的 从理论上讲 这应该可以显着加快计算速
  • 托盘栏中打开多个图标

    我正在开发一个 Windows 应用程序 当我运行该应用程序时 托盘栏上会出现多个图标 当我将鼠标悬停在这些图标上时 它们就会消失 有人知道为什么会发生这种情况吗 protected override void OnClosed Event
  • 在 ASP.NET 身份框架中更改时刷新当前用户的角色?

    使用 VS 2013 标准 MVC 模板和身份提供程序框架 用户已登录 我有 UserManager AddToRole User Identity GetUserId Members Line X RedirectToAction Ind
  • 无法通过 Godaddy 服务器在 ASP.NET 中发送电子邮件

    我有一个托管在 Godaddy 上的 ASP NET 应用程序 我想从中发送电子邮件 当它运行时 我得到 不允许使用邮箱名称 服务器响应是 抱歉 您所在位置的中继被拒绝 代码和Web config的重要部分如下 msg new MailMe
  • 防止 RichTextBox 自动滚动

    我有一个使用 RichTextBox 控件实现的只读数据记录窗口 我希望能够禁用用户单击控件时发生的自动滚动 以便用户可以选择特定日志进行复制 粘贴操作或其他操作 然而 一旦用户单击 RichTextBox 它就会自动滚动到底部 这使得这变
  • 在上下文中绘图时如何翻转坐标?

    我从 UIImage 创建一个上下文 然后使用 CGContextDrawImage bitmapContext CGRectMake 0 0 originalImage size width originalImage size heig
  • 适用于 BlackBerry 的 QR 码阅读器

    是否有 BlackBerry 库 组件 开源或商业 可集成到我自己的应用程序中充当 QR 码阅读器 我想将它完全集成到我的应用程序中 或者 有没有办法使用开源中兴图书馆 http code google com p zxing 与相机结合使
  • UIViewController 的 viewDidAppear 在模式关闭后不会被调用

    UIViewController 视图 A 通过将另一个视图控制器 视图 B 作为模态控件调用来调用它 自我呈现模态视图控制器 视图是动画的 TRUE 视图 B 通过调用而存在 自我解雇ModalViewControllerAnimated
  • 禁用 youtube api 的全屏

    我有一个带有片段的应用程序 在这些片段内我有框架布局 我在其中添加了 YouTubePlayerSupportFragment 但是当我单击全屏时 会引发此异常 java lang RuntimeException 无法启动活动 Compo
  • 使用 Spring 映射嵌套 json 和 POJO

    我正在实现一个 REST API 它使用 json 发送和接收数据 我对这个 API 设计完全陌生 我正在使用 Spring 框架和 requestbody responsebody 进行映射 最初 我有一个这样的 pojo public
  • 通过 ID 从 Firebase 检索 Java 对象

    我正在编写一个 Android 应用程序 我正在尝试检索该类的对象User java按 Firebase 相关表中的 ID 我想知道如何从Java端获取它 只要我尝试了中所述的示例Firebase 官方文档 https www fireba
  • 时间戳转字符串日期

    我不知道如何将时间戳转换为日期 我有 public void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentView R lay
  • 实体框架、外键和EntityKey

    我的实体框架和外键有问题 我有一个表 BC Message Assets 其中有 3 个 FK MessageId AssetId 和 StatusId 我像这样创建我的 MessageAsset MessageAsset messageA
  • 如何快速将6字节无符号整数复制到内存区域?

    我需要将 6 字节整数值复制到内存区域中 从其开头开始并尽可能快地复制 如果硬件支持这样的操作 我想使用它 我现在使用的是 x64 处理器 编译器是 GCC 4 6 3 The memset不适合这项工作 因为它只能复制字节 这std fi
  • 无法在 Ubuntu 16.04.2 LTS 上启动 docker(初始化 graphdriver 时出错)

    使用systemctl启动docker时遇到以下错误 Job for docker service failed because the control process exited with error code See systemct
  • 查找给定纬度/经度的位置(邮政编码、城市、州)的最快方法

    我需要一个免费 开源 的解决方案 给定纬度 经度可以返回最近的城市 州或邮政编码 mysql 不是一个选择 如果可能的话 小型轻量级数据库将是最好的 更新 没有网络服务 每天有 5000 万次展示 即使是最小的插件也会造成伤害 因此添加服务
  • 画布图像的图像效果不通过 php 上传保存,但适用于下载同一画布文件

    这是显示该问题的 YouTube 视频 https www youtube com watch v znzLQSYlsKM https www youtube com watch v znzLQSYlsKM 我给出了视频描述中涉及的所有代码