php+jquery在线切图代码[仿dedecms]

php+jquery在线切图代码[防dedecms]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>Cropper</title>
  <!-- css -->
  <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/combo?2.6.0/build/reset-fonts-grids/reset-fonts-grids.css" />
  <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.5.2/build/resize/assets/skins/sam/resize.css" />
  <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.5.2/build/imagecropper/assets/skins/sam/imagecropper.css" />
  <!-- js -->
  <script type="text/javascript" src="http://yui.yahooapis.com/combo?2.5.2/build/yahoo-dom-event/yahoo-dom-event.js&2.5.2/build/dragdrop/dragdrop-min.js&2.5.2/build/element/element-beta-min.js&2.5.2/build/resize/resize-beta-min.js&2.5.2/build/imagecropper/imagecropper-beta-min.js&2.5.2/build/connection/connection-min.js&2.5.2/build/json/json-min.js"></script>
  
  <style type="text/css">
   a:link, a:visited, a:active{
    color: #000;
    text-decoration: none;
    font-weight: bold;
   }
   
   a:hover{
    color: #fff;
    background-color: #000;
   }
   
   #hd{
    font-size: 2em;
    font-weight: bold;
    text-align: left;
    padding-bottom: 20px;
    border-bottom: 1px solid #ccc;
    margin: 10px 0 10px 0;
   }
   
   #uploadForm, #downloadLink{
    text-align: center;
   }
   
   #imageContainer{
    margin: 20px 0px 20px 0;
   }
   
   #ft{
    margin-top: 10px;
    padding-top: 10px;
    border-top:1px solid #ccc;
    text-align: center;
   }
  </style>
  
  <script type="text/javascript">
   uploader = {
    carry: function(){
     // set form
     YAHOO.util.Connect.setForm('uploadForm', true);
     // upload image
     YAHOO.util.Connect.asyncRequest('POST', 'upload.php', {
      upload: function(o){
       // parse our json data
       var jsonData = YAHOO.lang.JSON.parse(o.responseText);
       
       // put image in our image container
       YAHOO.util.Dom.get('imageContainer').innerHTML = '<img id="yuiImg" src="' + jsonData.image + '" width="' + jsonData.width + '" height="' + jsonData.height + '" alt="" />';
       
       // init our photoshop
       photoshop.init(jsonData.image);
       
       // get first cropped image
       photoshop.getCroppedImage();
      }
     });
    }
   };
      
   photoshop = {
    image: null,
    crop: null,
    //url: null,
    
    init: function(image){
     // set our image
     photoshop.image = image;
     
     // our image cropper from the uploaded image
     photoshop.crop = new YAHOO.widget.ImageCropper('yuiImg');
     photoshop.crop.on('moveEvent', function() {
      // get updated coordinates
      photoshop.getCroppedImage();
     });
    },
    
    getCroppedImage: function(){
     var coordinates = photoshop.getCoordinates();
     var url = 'crop.php?image=' + photoshop.image + '&cropStartX=' + coordinates.left +'&cropStartY=' + coordinates.top +'&cropWidth=' + coordinates.width +'&cropHeight=' + coordinates.height;
     YAHOO.util.Dom.get('downloadLink').innerHTML = '<a href="' + url + '">download cropped image</a>';
    },
    
    getCoordinates: function(){
     return photoshop.crop.getCropCoords();
    }
   };
   
   // add listeners
   YAHOO.util.Event.on('uploadButton', 'click', uploader.carry);
  </script>
 </head>
 <body class="yui-skin-sam">
  <div id="doc4" class="yui-t7">
   <div id="hd">
    AJAX image cropper - YUI-based
   </div>
   
   <div id="bd">
    <form action="upload.php" enctype="multipart/form-data" method="post" name="uploadForm" id="uploadForm">
     Image : <input type="file" name="uploadImage" id="uploadImage" />
     <input type="button" id="uploadButton" value="Upload"/>
    </form>
    
    <div id="imageContainer"></div>
    
    <div id="downloadLink"></div>
   </div>
   
   <div id="ft">
    <a href="http://htmlblog.net">HTML Blog</a>
   </div>
  </div>
 </body>
</html>
上面为index.php文件
根据x,y,来用php重新绘图

<?php
 // get variables
 $imgfile = $_GET['image'];
 $cropStartX = $_GET['cropStartX'];
 $cropStartY = $_GET['cropStartY'];
 $cropW = $_GET['cropWidth'];
 $cropH = $_GET['cropHeight'];

 // Create two images
 $origimg = imagecreatefromjpeg($imgfile);
 $cropimg = imagecreatetruecolor($cropW,$cropH);

 // Get the original size
 list($width, $height) = getimagesize($imgfile);

 // Crop
 imagecopyresized($cropimg, $origimg, 0, 0, $cropStartX, $cropStartY, $width, $height, $width, $height);

 // force download nes image
 header("Content-type: image/jpeg");
 header('Content-Disposition: attachment; filename="'.$imgfile.'"');
 imagejpeg($cropimg);

 // destroy the images
 imagedestroy($cropimg);
 imagedestroy($origimg);
?>

这里是图片上的,

<?php
 
 if(!empty($_FILES["uploadImage"])) {
    // get file name
  $filename = basename($_FILES['uploadImage']['name']);
  
  // get extension
    $ext = substr($filename, strrpos($filename, '.') + 1);
    
    // check for jpg only
    if ($ext == "jpg") {
        // generate unique file name
     $newName = 'images/'.time().'.'.$ext;
     
     // upload files
         if ((move_uploaded_file($_FILES['uploadImage']['tmp_name'], $newName))) {
   
          // get height and width for image uploaded
          list($width, $height) = getimagesize($newName);
          
          // return json data
             echo '{"image" : "'.$newName.'", "height" : "'.$height.'", "width" : "'.$width.'" }';
         }
         else {
             echo '{"error" : "An error occurred while moving the files"}';
         }
    }
    else {
       echo '{"error" : "Invalid image format"}';
    }
 }
?>

时间: 2024-10-12 12:20:12

php+jquery在线切图代码[仿dedecms]的相关文章

php 在线切图程序代码

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-

flash as 3.0实现在线切图效果

最近在做东西的时候要用到图像的裁剪,自然就要用到bitmapData了.很早以前做过基于透明像素的橡皮檫,这个图像裁剪的原理和橡皮檫的原理一样.也许很久没用又出于陌生了,所以决定好好在做一次,又加深些印象.哈哈... (双击上面那个心生成图像) 以下是图像裁剪核心的代码: function cutLayer_doubleClick_handler(me:MouseEvent) {  cutBtn.mouseEnabled=true; isCut=false  itf.actionExit(); 

jQuery实现标题有打字效果的焦点图代码_jquery

本文实例讲述了jQuery实现标题有打字效果的焦点图代码.分享给大家供大家参考,具体如下: 给大家分享一款基于jQuery标题有打字效果的焦点图,具有标题打字形式逐渐显示的功能.这款焦点图适用浏览器有:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-title-print-style-flash-codes/ 完整实例代码代码点击此处本站

JavaScript直播评论发弹幕切图功能点集合效果代码_javascript技巧

一.代码 html+js <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>数发直播平台</title> <link rel="stylesheet" type="text/css" href="css/common.css"> <link rel="styl

css命名规则:图片切图转网页的代码规范

文章简介:网页切图过程中div+css命名规则. 网上整理的比较好的css命名规则,为css代码的规范化做参考,增加代码的可读性. id的命名: (1)页面结构 容器: container 页头:header 内容:content/container 页面主体:main 页尾:footer 导航:nav 侧栏:sidebar 栏目:column 左右中:left right center 页面外围控制整体布局宽度:wrapper (2)导航 导航:nav 主导航:mainbav 子导航:subn

自制轻量级仿jQuery.boxy对话框插件代码_jquery

对此,jquery.boxy插件已经做得非常强大了,常用的提示.确认,拖拽.改变大小.异步加载都非常实用,导致文件较大(可忽略不计),很多功能并不需要,为此,抱着在边学边实践的态度和想法,自制一款适用于本项目的轻量级弹出层插件,这是第一次写jqeury插件,也为了以后能将常用操作封装为jquery插件做准备吧. 首先来个插件名字,这样才能去唬人,就叫jquey.cvbox.min.js吧,cv就是网站域名ChinaValue的缩写,压缩后的容量控制在6K以下.因为还未完成,所以先将思想记录下来.

轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码_jquery

废话不多说了,直接给大家贴代码了,具体代码如下所示: <!doctype html> <html> <head> <meta charset="utf-8"> <title>jQuery图片轮播(焦点图)插件</title> <link href="css/jquery.slideBox.css" rel="stylesheet" type="text/css

使用brackets来做,写html,js代码,下载emmet插件快速写代码,切图工的好帮手

brackets是adobe的开源产品,是一款用来写html,js的工具是切图工的好帮手,支持实于预览,当然现在限于google的chrome浏览器,我使用的是windows.041的版本 下载下来后一转换成中文的界面,语言包是内置的 然后需要下载一个插件,才能发挥出它的最大的长处 最经常使用一个就是emmet 如果要写出这样的代码使用的emmet的语法就是     <div class="part1">         <div class="leftp&

jquery带下拉菜单和焦点图代码分享_jquery

jquery带下拉菜单和焦点图是一款顶部通栏带二级下拉菜单和banner导航菜单代码.感兴趣的朋友快来学习学习吧 运行效果图:                           ----------------------查看效果 下载源码----------------------- 小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式. 为大家分享的jquery带下拉菜单和焦点图如下 <head> <meta http-equiv="Content-Type"