Blame | Last modification | View Log | Download
<?php/*************************Coppermine Photo Gallery************************Copyright (c) 2003-2005 Coppermine Dev Teamv1.1 originaly written by Gregory DEMARThis program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2 of the License, or(at your option) any later version.********************************************Coppermine version: 1.3.3$Source: /cvsroot/coppermine/stable/picEditor.php,v $$Revision: 1.4 $$Author: gaugau $$Date: 2005/04/19 03:17:11 $**********************************************/// embedded imagesfunction cornerleft(){header("Content-type: image/gif");header("Content-length: 290");echo base64_decode('R0lGODlhGQAZAMQAAP///+zu8d3h5tXb4dbW1s/V3czU2sXN1c'.'PK0cPExMHCw7y+wLW1tbC2va6yuKurrJmZmf///wAAAAAAAAAA'.'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BA'.'UUABEALAAAAAAZABkAAAWfICCOZGmeaHoqysI8CZG4sEzHSZ6I'.'CeJEEULg8AsOi0IgULRACgoNIOEZDQoGyoiIAUwECkUvuBvAZk'.'UPI1F6ZBuyS0Ds6RxbzXCR0C4Ol+FKPAdVQmtGb4BxTVJ0jHiJ'.'W2R8f4mBAGmFSAGIlXFzdlOPnXpffqKjcoNunYBMTqeskRFesL'.'GXh6yVPKG5ugBCtb08vbYJxKjGx5ByyokhADs='.'');}function cornerright(){header("Content-type: image/gif");header("Content-length: 292");echo base64_decode('R0lGODlhGQAZAMQAAP///+zv8t3h5tXc5NbW1s/V3dHS08XN1c'.'PK0cLDw8HCw7y+wLW1ta+0u66yuKurrJmZmf///wAAAAAAAAAA'.'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BA'.'UUABEALAAAAAAZABkAAAWhYCSOZGlGCQCc7JmubSy+skzX5xAY'.'Km4OAsLNJyrsIo8eMaJTiBhKH9AgciyiNSM10jgMZc2qFtuaih'.'qF4JelPR+OSVg54Iw4jIknuWTmprdWeyNtXG9bXWsjYXZ4YjuC'.'fWgCh2lCe4RdR4VwZIt3AXmMoHpyTAOUk2d/Z1elAQRVb7B2sm'.'cILwm5CQYJDwwLu72/wb7ALyrIycrLzM3OyyEAOw=='.'');}// image callsif (isset($_GET['img'])) {if ($_GET['img']=="left") {cornerleft();exit;}}if (isset($_GET['img'])) {if ($_GET['img']=="right") {cornerright();exit;}}define('IN_COPPERMINE', true);define('EDITPICS_PHP', true);require('include/init.inc.php');require('include/picmgmt.inc.php');define('IMG_DIR', $CONFIG['fullpath'].'edit/');if (!(GALLERY_ADMIN_MODE || USER_ADMIN_MODE)) cpg_die(ERROR, $lang_errors['access_denied'], __FILE__, __LINE__);if (isset($HTTP_GET_VARS['id'])) {$pid = (int)$HTTP_GET_VARS['id'];} elseif (isset($HTTP_POST_VARS['id'])) {$pid = (int)$HTTP_POST_VARS['id'];} else {$pid = -1;}if ($pid > 0){$result = db_query("SELECT * FROM {$CONFIG['TABLE_PICTURES']} WHERE pid = '$pid'");$CURRENT_PIC = mysql_fetch_array($result);mysql_free_result($result);$pic_url = get_pic_url($CURRENT_PIC,'fullsize');}//Garbage collection run at an probability of 25% and delete all files older than one hourif (rand(1,100) < 25){$d = opendir(IMG_DIR);while ($file = readdir($d)){if (is_file(IMG_DIR.$file) && ((time() - filemtime(IMG_DIR.$file))/60) > 60 && $file !="index.html" ){@unlink(IMG_DIR.$file);}}}//Include the proper class for image Objectif ($CONFIG['thumb_method']=="gd2"){require("include/imageObjectGD.class.php");}elseif ($CONFIG['thumb_method']=="im"){require("include/imageObjectIM.class.php");}else{die ("Editor class for your resize method not implemented");}//////////////////////////////////Main script//////////////////////////////////////// PREVENTING CACHINGheader("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the pastheader("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");// always modifiedheader("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1header("Cache-Control: post-check=0, pre-check=0", false);header("Pragma: no-cache"); // HTTP/1.0// PAGE INITif (!$img_dir) $img_dir = IMG_DIR;if ($_GET['id']){//Copy the Image file to the editing directoryif (copy($CONFIG['fullpath'].$CURRENT_PIC['filepath'].$CURRENT_PIC['filename'],$img_dir.$CURRENT_PIC['filename']))$newimage = $CURRENT_PIC['filename'];}else if(!isset($newimage)){$newimage = $_POST['newimage'];}if ($newimage){$imgObj = new imageObject($img_dir,$newimage);if ($_POST['quality']){$imgObj->quality = $_POST['quality'];}if ($imgObj->imgRes){if ($_POST['clipval'] && $_POST['cropping']==true){$imgObj = $imgObj->cropImage($_POST['clipval']);}if ($_POST['angle']<>0){$imgObj = $imgObj->rotateImage($_POST['angle']);}}$newimage = $imgObj->filename;}// newimageif(isset($_POST["save"])) {$width=$imgObj->width;$height=$imgObj->height;$normal = $CONFIG['fullpath'] . $CURRENT_PIC['filepath'] . $CONFIG['normal_pfx'] . $CURRENT_PIC['filename'];$thumbnail = $CONFIG['fullpath'] . $CURRENT_PIC['filepath'] . $CONFIG['thumb_pfx'] . $CURRENT_PIC['filename'];$filesize = @filesize($img_dir.$newimage);//Full image replacecopy($img_dir.$newimage,$CONFIG['fullpath'].$CURRENT_PIC['filepath'].$CURRENT_PIC['filename']) ;// Normal image resized and replace, use the CPG resize method instead of the object resizeImage// as using the object resizeImage will make the final display of image to be a thumbnail in the editorif (max($width, $height) > $CONFIG['picture_width'] && $CONFIG['make_intermediate']) {resize_image($img_dir.$newimage, $normal, $CONFIG['picture_width'], $CONFIG['thumb_method'], $CONFIG['thumb_use']);} else {@unlink($normal);}//thumbnail resized and replaceresize_image($img_dir.$newimage, $thumbnail, $CONFIG['thumb_width'], $CONFIG['thumb_method'], $CONFIG['thumb_use']);$total_filesize = $filesize + (file_exists($normal) ? filesize($normal) : 0) + filesize($thumbnail);//Update the image size in the DBdb_query("UPDATE {$CONFIG['TABLE_PICTURES']}SET pheight = $height,pwidth = $width,filesize = $filesize,total_filesize = $total_filesizeWHERE pid = '$pid'");$message = "Picture successfully saved - you can close this window now";}if(isset($_POST["save_thumb"])) {$width=$imgObj->width;$height=$imgObj->height;$normal = $CONFIG['fullpath'] . $CURRENT_PIC['filepath'] . $CONFIG['normal_pfx'] . $CURRENT_PIC['filename'];$thumbnail = $CONFIG['fullpath'] . $CURRENT_PIC['filepath'] . $CONFIG['thumb_pfx'] . $CURRENT_PIC['filename'];$currentPic = $CONFIG['fullpath'] . $CURRENT_PIC['filepath'] . $CURRENT_PIC['filename'];//Calculate the thumbnail dimensionsif ($CONFIG['thumb_use'] == 'ht') {$ratio = $height / $CONFIG['thumb_width'] ;} elseif ($CONFIG['thumb_use'] == 'wd') {$ratio = $width / $CONFIG['thumb_width'] ;} else {$ratio = max($width, $height) / $CONFIG['thumb_width'] ;}$ratio = max($ratio, 1.0);$dstWidth = (int)($width / $ratio);$dstHeight = (int)($height / $ratio);$imgObj->quality = (int)($_POST['quality']);$imgObj = $imgObj->resizeImage($dstWidth,$dstHeight);$newimage = $imgObj->filename;copy($img_dir.$newimage,$CONFIG['fullpath'].$CURRENT_PIC['filepath'].$CONFIG['thumb_pfx'].$CURRENT_PIC['filename']) ;$total_filesize = filesize($currentPic) + (file_exists($normal) ? filesize($normal) : 0) + filesize($thumbnail);//Update the image size in the DBdb_query("UPDATE {$CONFIG['TABLE_PICTURES']} SET total_filesize = $total_filesize WHERE pid = '$pid'");$message = "Thumbnail successfully saved - you can close this window now";}?><html><meta http-equiv="imagetoolbar" content="no" /><head><title><?php echo $lang_editpics_php['crop_title'] ?></title><?php if($imgObj){?><script language="JavaScript1.2">/****************************************************************************DHTML library from DHTMLCentral.com* Copyright (C) 2001 Thomas Brattli 2001* This script was released at DHTMLCentral.com* Visit for more great scripts!* This may be used and changed freely as long as this msg is intact!* We will also appreciate any links you could give us.** Made by Thomas Brattli 2001***************************************************************************///Browsercheck (needed) ***************function lib_bwcheck(){this.ver=navigator.appVersionthis.agent=navigator.userAgentthis.dom=document.getElementById?1:0this.opera5=this.agent.indexOf("Opera 5")>-1this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0;this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;this.ie4=(document.all && !this.dom && !this.opera5)?1:0;this.ie=this.ie4||this.ie5||this.ie6this.mac=this.agent.indexOf("Mac")>-1this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0;this.ns4=(document.layers && !this.dom)?1:0;this.bw=(this.ie6||this.ie5||this.ie4||this.ns4||this.ns6||this.opera5)return this}bw=new lib_bwcheck() //Browsercheck object//Debug function ******************function lib_message(txt){alert(txt); return false}//Lib objects ********************function lib_obj(obj,nest){if(!bw.bw) return lib_message('Old browser')nest=(!nest) ? "":'document.'+nest+'.'this.evnt=bw.dom? document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+"document.layers." +obj):0;if(!this.evnt) return lib_message('The layer does not exist ('+obj+')'+'- \nIf your using Netscape please check the nesting of your tags!')this.css=bw.dom||bw.ie4?this.evnt.style:this.evnt;this.ref=bw.dom||bw.ie4?document:this.css.document;this.x=parseInt(this.css.left)||this.css.pixelLeft||this.evnt.offsetLeft||0;this.y=parseInt(this.css.top)||this.css.pixelTop||this.evnt.offsetTop||0this.w=this.evnt.offsetWidth||this.css.clip.width||this.ref.width||this.css.pixelWidth||0;this.h=this.evnt.offsetHeight||this.css.clip.height||this.ref.height||this.css.pixelHeight||0this.c=0 //Clip valuesif((bw.dom || bw.ie4) && this.css.clip) {this.c=this.css.clip; this.c=this.c.slice(5,this.c.length-1);this.c=this.c.split(' ');for(var i=0;i<4;i++){this.c[i]=parseInt(this.c[i])}}this.ct=this.css.clip.top||this.c[0]||0;this.cr=this.css.clip.right||this.c[1]||this.w||0this.cb=this.css.clip.bottom||this.c[2]||this.h||0;this.cl=this.css.clip.left||this.c[3]||0this.obj = obj + "Object"; eval(this.obj + "=this")return this}//Moving object to **************lib_obj.prototype.moveIt = function(x,y){this.x=x;this.y=y; this.css.left=x;this.css.top=y}//Moving object by ***************lib_obj.prototype.moveBy = function(x,y){this.css.left=this.x+=x; this.css.top=this.y+=y}//Showing object ************lib_obj.prototype.showIt = function(){this.css.visibility="visible"}//Hiding object **********lib_obj.prototype.hideIt = function(){this.css.visibility="hidden"}//Changing backgroundcolor ***************lib_obj.prototype.bg = function(color){if(bw.opera) this.css.background=colorelse if(bw.dom || bw.ie4) this.css.backgroundColor=colorelse if(bw.ns4) this.css.bgColor=color}//Writing content to object ***lib_obj.prototype.writeIt = function(text,startHTML,endHTML){if(bw.ns4){if(!startHTML){startHTML=""; endHTML=""}this.ref.open("text/html");this.ref.write(startHTML+text+endHTML);this.ref.close()}else this.evnt.innerHTML=text}//Clipping object to ******lib_obj.prototype.clipTo = function(t,r,b,l,setwidth){this.ct=t; this.cr=r; this.cb=b; this.cl=lif(bw.ns4){this.css.clip.top=t;this.css.clip.right=rthis.css.clip.bottom=b;this.css.clip.left=l}else{if(t<0)t=0;if(r<0)r=0;if(b<0)b=0;if(b<0)b=0this.css.clip="rect("+t+","+r+","+b+","+l+")";if(setwidth){this.css.pixelWidth=this.css.width=r;this.css.pixelHeight=this.css.height=b}}}//Clipping object by ******lib_obj.prototype.clipBy = function(t,r,b,l,setwidth){this.clipTo(this.ct+t,this.cr+r,this.cb+b,this.cl+l,setwidth)}//Clip animation ************lib_obj.prototype.clipIt = function(t,r,b,l,step,fn,wh){tstep=Math.max(Math.max(Math.abs((t-this.ct)/step),Math.abs((r-this.cr)/step)),Math.max(Math.abs((b-this.cb)/step),Math.abs((l-this.cl)/step)))if(!this.clipactive){this.clipactive=true; if(!wh) wh=0; if(!fn) fn=0this.clip(t,r,b,l,(t-this.ct)/tstep,(r-this.cr)/tstep,(b-this.cb)/tstep,(l-this.cl)/tstep,tstep,0, fn,wh)}}lib_obj.prototype.clip = function(t,r,b,l,ts,rs,bs,ls,tstep,astep,fn,wh){if(astep<tstep){if(wh) eval(wh);astep++this.clipBy(ts,rs,bs,ls,1);setTimeout(this.obj+".clip("+t+","+r+","+b+","+l+","+ts+","+rs+","+bs+","+ls+","+tstep+","+astep+",'"+fn+"','"+wh+"')",50)}else{this.clipactive=false; this.clipTo(t,r,b,l,1);if(fn) eval(fn)}}//Slide animation ***********lib_obj.prototype.slideIt = function(endx,endy,inc,speed,fn,wh){if(!this.slideactive){var distx = endx - this.x;var disty = endy - this.yvar num = Math.sqrt(Math.pow(distx,2)+Math.pow(disty,2))/incvar dx = distx/num; var dy = disty/numthis.slideactive = 1;if(!wh) wh=0; if(!fn) fn=0this.slide(dx,dy,endx,endy,speed,fn,wh)}}lib_obj.prototype.slide = function(dx,dy,endx,endy,speed,fn,wh) {if(this.slideactive&&(Math.floor(Math.abs(dx))<Math.floor(Math.abs(endx-this.x))||Math.floor(Math.abs(dy))<Math.floor(Math.abs(endy-this.y)))){this.moveBy(dx,dy);if(wh) eval(wh)setTimeout(this.obj+".slide("+dx+","+dy+","+endx+","+endy+","+speed+",'"+fn+"','"+wh+"')",speed)}else{this.slideactive = 0;this.moveIt(endx,endy);if(fn) eval(fn)}}//Circle animation ****************lib_obj.prototype.circleIt = function(rad,ainc,a,enda,xc,yc,speed,fn) {if((Math.abs(ainc)<Math.abs(enda-a))) {a += aincvar x = xc + rad*Math.cos(a*Math.PI/180)var y = yc - rad*Math.sin(a*Math.PI/180)this.moveIt(x,y)setTimeout(this.obj+".circleIt("+rad+","+ainc+","+a+","+enda+","+xc+","+yc+","+speed+",'"+fn+"')",speed)}else if(fn&&fn!="undefined") eval(fn)}//Document size object ********function lib_doc_size(){this.x=0;this.x2=bw.ie && document.body.offsetWidth-20||innerWidth||0;this.y=0;this.y2=bw.ie && document.body.offsetHeight-5||innerHeight||0;if(!this.x2||!this.y2) return message('Document has no width or height')this.x50=this.x2/2;this.y50=this.y2/2;return this;}//Drag drop functions start *******************dd_is_active=0; dd_obj=0; dd_mobj=0function lib_dd(){dd_is_active=1if(bw.ns4){document.captureEvents(Event.MOUSEMOVE|Event.MOUSEDOWN|Event.MOUSEUP)}document.onmousemove=lib_dd_move;document.onmousedown=lib_dd_downdocument.onmouseup=lib_dd_up}lib_obj.prototype.dragdrop = function(obj){if(!dd_is_active) lib_dd()this.evnt.onmouseover=new Function("lib_dd_over("+this.obj+")")this.evnt.onmouseout=new Function("dd_mobj=0")if(obj) this.ddobj=obj}lib_obj.prototype.nodragdrop = function(){this.evnt.onmouseover=""; this.evnt.onmouseout=""dd_obj=0; dd_mobj=0}//Drag drop event functionsfunction lib_dd_over(obj){dd_mobj=obj}function lib_dd_up(e){dd_obj=0}var MouseX = 0;var MouseY = 0;function lib_dd_down(e){ //Mousedownif(dd_mobj){x=(bw.ns4 || bw.ns6)?e.pageX:event.x||event.clientXy=(bw.ns4 || bw.ns6)?e.pageY:event.y||event.clientYdd_obj=dd_mobjdd_obj.clX=x-dd_obj.xdd_obj.clY=y-dd_obj.y}}function lib_dd_move(e,y,rresize){ //Mousemovex=(bw.ns4 || bw.ns6)?e.pageX:event.x||event.clientXy=(bw.ns4 || bw.ns6)?e.pageY:event.y||event.clientYif(dd_obj){nx=x-dd_obj.clX; ny=y-dd_obj.clYif(dd_obj.ddobj) dd_obj.ddobj.moveIt(nx,ny)else dd_obj.moveIt(nx,ny)}if(!bw.ns4) return false}//Drag drop functions end *************// page functionsfunction resetClip(){newleft = (screen.width - <?php echo $imgObj->width?>)/2;if (newleft<0)newleft = 0;objimg.moveIt(newleft,100);objimg.clipTo(0,<?php echo $imgObj->width?>,<?php echo $imgObj->height?>,0,1);objlefttop.moveIt(newleft-2,97);objrightbottom.moveIt(newleft+<?php echo $imgObj->width?>-23,100+<?php echo $imgObj->height?>-23);document.mainform.clipval.value = "";}function libinit(){page=new lib_doc_size();objlefttop=new lib_obj('lefttopdiv');objlefttop.dragdrop();objrightbottom=new lib_obj('rightbottomdiv');objrightbottom.dragdrop();objimg=new lib_obj('imgdiv');resetClip();}function showPreview(){if (objlefttop.y < objimg.y+2 ){objlefttop.y = objimg.y+2 ;objlefttop.moveIt(objlefttop.x, objimg.y);}if (objlefttop.x < objimg.x ){objlefttop.x = objimg.x ;objlefttop.moveIt(objimg.x, objlefttop.y );}objimg.clipTo(objlefttop.y-objimg.y+2, objrightbottom.x-objimg.x+23 , objrightbottom.y-objimg.y+23, objlefttop.x-objimg.x+2,1);document.mainform.clipval.value = objimg.ct + ',' + objimg.cr + ',' + objimg.cb + ',' + objimg.cl;}function showCorners(check){if (check.checked){objlefttop.showIt();objrightbottom.showIt();}else{objlefttop.hideIt();objrightbottom.hideIt();resetClip();}}</script><?php }?><style>#lefttopdiv{position:absolute;background-image:url(<?php echo $PHP_SELF?>?img=left);left:0px;top:100px;height:25px;width:25px;z-index:8;cursor:move;visibility:hidden;}#rightbottomdiv{position:absolute;background-image:url(<?php echo $PHP_SELF?>?img=right);left:0px;top:225px;height:25px;width:25px;z-index:9;cursor:move;visibility:hidden;}#imgdiv{position:absolute;top:100px;width:<?php echo $imgObj->width?>px;height:<?php echo $imgObj->height?>px;text-align:center;margin-left:auto;margin-right:auto;z-index:0;<?php if (!$imgObj->imgRes) print "visibility:hidden;\n";?>}</style><link rel="stylesheet" href="themes/<?php echo $CONFIG['theme'];?>/style.css" /></head><body <?php if ($imgObj) print "onload=\"libinit()\"";?>><form name="mainform" method="POST" enctype="multipart/form-data" action="picEditor.php"><input type="hidden" name="clipval" value=""><input type="hidden" name="newimage" value="<?php print $newimage ; ?>"><input type="hidden" name="img_dir" value="<?php print $img_dir ; ?>"><input type="hidden" name="id" value="<?php print (isset($_GET['id']))?$_GET['id']:$_POST['id']; ?>"><? starttable("100%", $lang_editpics_php['crop_title'], 3); ?><tr><td><table border="0" cellspacing="2" cellpadding="2" class="maintableb" width="100%" ><tr><?php if ($CONFIG['thumb_method']='im' ||($CONFIG['thumb_method']='gd2' && function_exists("imagerotate"))){ ?><td><select name="angle" class="listbox"><option value="0" selected>Rotate<option value="90">-90°<option value="180">180°<option value="270">+90°</select></td><!--<td ><input valign="bottom" type="checkbox" class="checkbox" name="mirror" value="true">Mirror</td><?php } ?><td><select name="rescale" class="listbox"><option value="">Scale<option value="0.1">10%<option value="0.11">11%<option value="0.12">12%<option value="0.13">13%<option value="0.14">14%<option value="0.15">15%<option value="0.16">16%<option value="0.17">17%<option value="0.18">18%<option value="0.19">19%<option value="0.2">20%<option value="0.21">21%<option value="0.22">22%<option value="0.23">23%<option value="0.24">24%<option value="0.25">25%<option value="0.26">26%<option value="0.27">27%<option value="0.28">28%<option value="0.29">29%<option value="0.3">30%<option value="0.31">31%<option value="0.32">32%<option value="0.33">33%<option value="0.34">34%<option value="0.35">35%<option value="0.36">36%<option value="0.37">37%<option value="0.38">38%<option value="0.39">39%<option value="0.4">40%<option value="0.41">41%<option value="0.42">42%<option value="0.43">43%<option value="0.44">44%<option value="0.45">45%<option value="0.46">46%<option value="0.47">47%<option value="0.48">48%<option value="0.49">49%<option value="0.5">50%<option value="0.51">51%<option value="0.52">52%<option value="0.53">53%<option value="0.54">54%<option value="0.55">55%<option value="0.56">56%<option value="0.57">57%<option value="0.58">58%<option value="0.59">59%<option value="0.6">60%<option value="0.61">61%<option value="0.62">62%<option value="0.63">63%<option value="0.64">64%<option value="0.65">65%<option value="0.66">66%<option value="0.67">67%<option value="0.68">68%<option value="0.69">69%<option value="0.7">70%<option value="0.71">71%<option value="0.72">72%<option value="0.73">73%<option value="0.74">74%<option value="0.75">75%<option value="0.76">76%<option value="0.77">77%<option value="0.78">78%<option value="0.79">79%<option value="0.8">80%<option value="0.81">81%<option value="0.82">82%<option value="0.83">83%<option value="0.84">84%<option value="0.85">85%<option value="0.86">86%<option value="0.87">87%<option value="0.88">88%<option value="0.89">89%<option value="0.9">90%<option value="0.91">91%<option value="0.92">92%<option value="0.93">93%<option value="0.94">94%<optionvalue="0.95">95%<option value="0.96">96%<option value="0.97">97%<option value="0.98">98%<option value="0.99">99%<option value="1">100%<option value="1.01">101%<option value="1.02">102%<option value="1.03">103%<option value="1.04">104%<option value="1.05">105%<option value="1.06">106%<option value="1.07">107%<option value="1.08">108%<option value="1.09">109%<option value="1.1">110%<option value="1.11">111%<option value="1.12">112%<option value="1.13">113%<option value="1.14">114%<option value="1.15">115%<option value="1.16">116%<option value="1.17">117%<option value="1.18">118%<option value="1.19">119%<option value="1.2">120%<option value="1.21">121%<option value="1.22">122%<option value="1.23">123%<option value="1.24">124%<option value="1.25">125%<option value="1.26">126%<option value="1.27">127%<option value="1.28">128%<option value="1.29">129%<option value="1.3">130%<option value="1.31">131%<option value="1.32">132%<option value="1.33">133%<option value="1.34">134%<option value="1.35">135%<option value="1.36">136%<option value="1.37">137%<option value="1.38">138%<option value="1.39">139%<option value="1.4">140%<option value="1.41">141%<option value="1.42">142%<option value="1.43">143%<option value="1.44">144%<option value="1.45">145%<option value="1.46">146%<option value="1.47">147%<option value="1.48">148%<option value="1.49">149%<option value="1.5">150%<option value="1.51">151%<option value="1.52">152%<option value="1.53">153%<option value="1.54">154%<option value="1.55">155%<option value="1.56">156%<option value="1.57">157%<option value="1.58">158%<option value="1.59">159%<option value="1.6">160%<option value="1.61">161%<option value="1.62">162%<option value="1.63">163%<option value="1.64">164%<option value="1.65">165%<option value="1.66">166%<option value="1.67">167%<option value="1.68">168%<option value="1.69">169%<option value="1.7">170%<option value="1.71">171%<option value="1.72">172%<option value="1.73">173%<option value="1.74">174%<option value="1.75">175%<option value="1.76">176%<option value="1.77">177%<option value="1.78">178%<option value="1.79">179%<option value="1.8">180%<option value="1.81">181%<option value="1.82">182%<option value="1.83">183%<option value="1.84">184%<option value="1.85">185%<option value="1.86">186%<option value="1.87">187%<option value="1.88">188%<option value="1.89">189%<option value="1.9">190%<option value="1.91">191%<option value="1.92">192%<option value="1.93">193%<option value="1.94">194%<option value="1.95">195%<option value="1.96">196%<option value="1.97">197%<option value="1.98">198%<option value="1.99">199%<option value="2">200%</option></select></td><td>OR</td><td><select name="widthheight" class="listbox" ><option value="width">New width<option value="height">New height</option></select></td><td><input type="text" size="3" name="newsize" class="textinput"> px</td>--><td><input type="checkbox" class="checkbox" name="cropping" value="true" onclick="showCorners(this)">Enable clipping, apply to crop</td><td title="Less quality creates a smaller file, default is 80%" ><select id="quality" name="quality" class="listbox" ><option value="80" selected>JPEG Output Quality<option value="10">10<option value="11">11<option value="12">12<option value="13">13<option value="14">14<option value="15">15<option value="16">16<option value="17">17<option value="18">18<option value="19">19<option value="20">20<option value="21">21<option value="22">22<option value="23">23<option value="24">24<option value="25">25<option value="26">26<option value="27">27<option value="28">28<option value="29">29<option value="30">30<option value="31">31<option value="32">32<option value="33">33<option value="34">34<option value="35">35<option value="36">36<option value="37">37<option value="38">38<option value="39">39<option value="40">40<option value="41">41<option value="42">42<option value="43">43<option value="44">44<option value="45">45<option value="46">46<option value="47">47<option value="48">48<option value="49">49<option value="50">50<option value="51">51<option value="52">52<option value="53">53<option value="54">54<option value="55">55<option value="56">56<option value="57">57<optionvalue="58">58<option value="59">59<option value="60">60<option value="61">61<option value="62">62<option value="63">63<option value="64">64<option value="65">65<option value="66">66<option value="67">67<option value="68">68<option value="69">69<option value="70">70<option value="71">71<option value="72">72<option value="73">73<option value="74">74<option value="75">75<option value="76">76<option value="77">77<option value="78">78<option value="79">79<option value="80">80<option value="81">81<option value="82">82<option value="83">83<option value="84">84<option value="85">85<option value="86">86<option value="87">87<option value="88">88<option value="89">89<option value="90">90<option value="91">91<option value="92">92<option value="93">93<option value="94">94<option value="95">95<option value="96">96<option value="97">97<option value="98">98<option value="99">99<option value="100">100</option></select></td><td><input type="submit" name="submit" class="button" value=" <?php echo $lang_editpics_php['preview'] ?> "></td><td><input type="submit" name="save" class="button" value=" <?php echo $lang_editpics_php['save'] ?> "></td><td><input type="submit" name="save_thumb" class="button" value=" <?php echo $lang_editpics_php['save_thumb'] ?> "></td></tr></table></td></tr><?php endtable(); ?><div id="lefttopdiv" onclick="showPreview(); return false;"></div><div id="rightbottomdiv" onclick="showPreview(); return false;"></div><?php if ($message){ ?><h1 align=center><?php echo $message?></h1><?php } ?><div id="imgdiv"><?php if ($imgObj){ ?><IMG src="<?php echo $imgObj->directory.$imgObj->filename?>?<?php echo rand(); ?>" <?php echo $imgObj->string; ?> align="absmiddle"><?php } ?></div></body></html>