如何为WordPress插件制作自己的裁剪图像功能

时间:2015-05-13 05:22:48

标签: php wordpress image wordpress-plugin crop

我正在开发插件,在插件中我为图片创建上传元字段以上传一个或多个图片。它完美地工作并在插件设置中为用户提供选项,他们为大图像和缩略图设置图像大小(widthxheight)。首先,我在<img /> attrribute width and height中使用这些选项,并调整图片大小,但图像效果不佳。

所以现在我想在wordpress上传图片时自己裁剪图片。首先,我尝试使用wordpress bult-in函数add_image_size()。它会裁剪图像,但图像不会分配到帖子,因为我使用元字段和原始图像路径存储在wp_postmeta表格中,并且图像路径保存在wp_posts表中,但它们不会分配给任何post(post_parent为0)

我也使用网络中的一些核心PHP代码,但我不明白我如何在WordPress中合并此代码,但它在核心php中的工作完美

这是核心的PHP代码:

的index.php

<form enctype="multipart/form-data" method="post" action="image_upload_script.php">
Choose your file here:
<input name="uploaded_file" type="file"/><br /><br />
<input type="submit" value="Upload It"/>

image_upload_script.php

$fileName = $_FILES["uploaded_file"]["name"];
$fileTmpLoc = $_FILES["uploaded_file"]["tmp_name"];
$kaboom = explode(".", $fileName); 
$fileExt = end($kaboom);

$moveResult = move_uploaded_file($fileTmpLoc, "uploads/$fileName");

include_once("ak_php_img_lib_1.0.php");
$target_file = "uploads/$fileName";
$resized_file = "uploads/resized_$fileName";
$wmax = 200;
$hmax = 150;
ak_img_resize($target_file, $resized_file, $wmax, $hmax, $fileExt);

ak_php_img_lib_1.0.php

function ak_img_resize($target, $newcopy, $w, $h, $ext) {
    list($w_orig, $h_orig) = getimagesize($target);
    $scale_ratio = $w_orig / $h_orig;

    $img = "";
    $ext = strtolower($ext);
    if ($ext == "gif"){ 
      $img = imagecreatefromgif($target);
    } else if($ext =="png"){ 
      $img = imagecreatefrompng($target);
    } else { 
      $img = imagecreatefromjpeg($target);
    }
    $tci = imagecreatetruecolor($w, $h);
    // imagecopyresampled(dst_img, src_img, dst_x, dst_y, src_x, src_y, dst_w, dst_h, src_w, src_h)
    imagecopyresampled($tci, $img, 0, 0, 0, 0, $w, $h, $w_orig, $h_orig);
    imagejpeg($tci, $newcopy);

在核心php中它的工作完美,但我不知道我怎么能在wordpress中使用它,或者是否有另一种wordpress方法来实现这一点。

0 个答案:

没有答案