Как сделать собственную функцию обрезки изображения для плагина WordPress

Я работаю над плагином, в плагине я создаю мета-поля для загрузки изображений, чтобы загрузить одно или несколько изображений. Он работает отлично, и в настройках плагина я дал пользователям возможность устанавливать размер изображения (widthxheight) для большого изображения и миниатюры. Сначала я использую эти опции в <img /> attrribute width and height и его изменить размер изображения, но изображение не выглядит хорошо.

Так что теперь я хочу обрезать изображения самостоятельно, когда WordPress загружает изображения. Сначала я попробую встроенную функцию WordPress add_image_size(), Он обрезает изображения, но изображения не назначать постам, потому что я использую мета-поля и оригинальный путь к хранилищу изображений в wp_postmeta таблица и путь обрезанных изображений сохранить в wp_posts таблицы, но они не назначаются ни одному посту (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 для достижения этой цели.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector