4

私は自分のサイトで ckeditor を使用しています。ローカル システムからサーバーに画像をアップロードする際に、アップロードした画像の幅と高さを固定したいと考えています。

4

1 に答える 1

0

それを解決するには、少なくとも 2 つの方法があります。

1.画像を「アップロード」し、w&h パラメータを修正するカスタム アップロード スクリプトを作成します。ここに例を含むドキュメント。たとえば、いくつかのコード:

HTMLで:

<pre>
    CKEDITOR.replace( 'editor1',
        {
             filebrowserImageUploadUrl: '/uploader/upload.php'
        });
</pre>  

/uploader/upload.php で:

<pre>
function resizeImage($file, $filename, $newwidth = 800, $newheight = 600)
{       
    $type = substr($file,strrpos($file,".")+1);

    switch($type) 
    {
        case 'jpg':
            $src = imagecreatefromjpeg($file);
            break;
        case 'jpeg':
            $src = imagecreatefromjpeg($file);
            break;
        case 'gif':
            $src = imagecreatefromgif($file);
            break;
        case 'png':
            $src = imagecreatefrompng($file);
            break;
        default:
            $src = imagecreatefromjpeg($file);
            break;
    }

    list($width,$height)=getimagesize($file);
    $tmp=imagecreatetruecolor($newwidth,$newheight);
    imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);

    switch($type) {
        case 'jpg':
            imagejpeg($tmp,$filename,100);
            break;
        case 'jpeg':
            imagejpeg($tmp,$filename,100);
            break;
        case 'gif':
            imagegif($tmp,$filename,100);
            break;
        case 'png':
            imagepng($tmp,$filename,9);
            break;
        case 'wbm':
            imagewbmp($tmp,$filename,100);
            break;
        default:
            imagejpeg($tmp,$filename,100);
            break;
    }
    imagedestroy($src);
    imagedestroy($tmp);
    return true;
}

$img = resizeImage($_FILES['file']['tmp_name'], $_FILES['file']['name'], $newwidth = 800, $newheight = 600);
</pre>

ps検索クエリ「php image resize」などのスクリプトのトーンがあります。

2. CKeditor モードを使用します。そして、ここに解決策があります:別のstackoverflow question

于 2012-11-12T08:52:39.710 に答える