sto usando il seguente codice javascript per instanciete jquery imgAreaSelect per ritagliare la mia immagine.Come ritagliare un'immagine con php usando jquery imgAreaSelect?
$(document).ready(function() {
$('#ladybug').imgAreaSelect({
onSelectEnd: function (img, selection) {
$('input[name="x1"]').val(selection.x1);
$('input[name="y1"]').val(selection.y1);
$('input[name="x2"]').val(selection.x2);
$('input[name="y2"]').val(selection.y2);
}
});
});
Ciò si riferisce al codice HTML seguente (esempio):
<div>
<img id="ladybug" src="ladybug.jpg" alt="" />
</div>
<div>
<form action="#" method="post">
<input id="x1" type="hidden" name="x1" value="" />
<input id="y1" type="hidden" name="y1" value="" />
<input id="x2" type="hidden" name="x2" value="" />
<input id="y2" type="hidden" name="y2" value="" />
<input type="submit" name="submit" value="Submit" />
</form>
</div>
Questo funziona perfettamente, sto ottenendo tutte le informazioni di destra di nuovo php quando inviare il modulo. Tuttavia, ora devo usare php per modificare l'immagine con le coordinate che il modulo invia appena. E questo è stato più difficile allora pensavo.
$image_info = getimagesize($filename);
$image = imagecreatefromjpeg($filename);
$width = imagesx($image);
$height = imagesy($image);
$resized_width = ((int)$formData["x2"]) - ((int)$formData["x1"]);
$resized_height = ((int)$formData["y2"]) - ((int)$formData["y1"]);
$resized_image = imagecreatetruecolor($resized_width, $resized_height);
imagecopyresampled($resized_image, $image, 0, 0, (int)$formData["x1"], (int)$formData["y1"], $resized_width , $resized_height, $width, $height);
imagejpeg($resized_image, $filename);
Lo script precedente funziona ma utilizza le coordinate/larghezza/altezza nel modo sbagliato. Sono sempre andato oltre con un grande bordo nero nell'immagine ridimensionata:
Qualcuno mi può impostare nella giusta direzione?