Вход Регистрация
Файл: concrete5.7.5.6/concrete/tools/files/image/process.php
Строк: 19
<?php
defined
('C5_EXECUTE') or die("Access Denied.");
$f File::getByID($_REQUEST['fID']);
$fp = new Permissions($f);
if (
is_object($f) && $fp->canWrite()) {
    
$to $f->getTypeObject();
    if (
$to->getGenericType() == FileType::T_IMAGE) {
        
$imp Loader::helper('concrete/image');
        
$width $f->getAttribute('width');
        
$height $f->getAttribute('height');
        
$ext $f->getExtension();
        
        
$viewPortW $_POST["viewPortW"];
        
$viewPortH $_POST["viewPortH"];
        
$pWidth $_POST["imageW"];
        
$pHeight =  $_POST["imageH"];
        
        
$image $imp->startImageProcess($f);
        if (
$image) { 
            
$width imagesx($image);
            
$height imagesy($image);
            
            
// Resample
            
$image_p imagecreatetruecolor($pWidth$pHeight);
            
$imp->setTransparency($image,$image_p,$ext);
            
imagecopyresampled($image_p$image0000$pWidth$pHeight$width$height);
            
imagedestroy($image);
            
$widthR imagesx($image_p);
            
$heightR imagesy($image_p);

            
$selectorX $_POST["selectorX"];
            
$selectorY $_POST["selectorY"];

            if(
$_POST["imageRotate"]){
                
$angle 360 $_POST["imageRotate"];
                
$image_p imagerotate($image_p,$angle,0);
                
                
$pWidth imagesx($image_p);
                
$pHeight imagesy($image_p);
            
                
$diffW abs($pWidth $widthR) / 2;
                
$diffH abs($pHeight $heightR) / 2;
                    
                
$_POST["imageX"] = ($pWidth $widthR $_POST["imageX"] - $diffW $_POST["imageX"] + $diffW);
                
$_POST["imageY"] = ($pHeight $heightR $_POST["imageY"] - $diffH $_POST["imageY"] + $diffH);
            }

            
$dst_x $src_x $dst_y $src_y 0;

            if(
$_POST["imageX"] > 0){
                
$dst_x abs($_POST["imageX"]);
            }else{
                
$src_x abs($_POST["imageX"]);
            }
            if(
$_POST["imageY"] > 0){
                
$dst_y abs($_POST["imageY"]);
            }else{
                
$src_y abs($_POST["imageY"]);
            }


            
$viewport imagecreatetruecolor($_POST["viewPortW"],$_POST["viewPortH"]);
            
$imp->setTransparency($image_p,$viewport,$ext);

            
imagecopy($viewport$image_p$dst_x$dst_y$src_x$src_y$pWidth$pHeight);
            
imagedestroy($image_p);
            
            
            
$selector imagecreatetruecolor($_POST["selectorW"],$_POST["selectorH"]);
            
$imp->setTransparency($viewport,$selector,$ext);
            
imagecopy($selector$viewport00$selectorX$selectorY,$_POST["viewPortW"],$_POST["viewPortH"]);
            
            
$file Loader::helper('file')->getTemporaryDirectory() . '/' .time() . "." $ext;
            
$imp->parseImage($ext,$selector,$file);
            
imagedestroy($viewport);
            
            
            
$fi = new FileImporter();
            
$resp $fi->import($file$f->getFileName(), $f);
        }
    }
}
Онлайн: 0
Реклама