invece di aprire un thread nuovo uppo questo, dato che è Jcrop sempre, e già che ci sono per entrare IT (tanto immagino hai già risolto) dico si, basta aggiungere il path per il salvataggio su server.
Il problema non è tanto la miniatura che mi basta resettare il width e l'height e l'ho scapolata, sto smoccolando come un bizantino per il crop.
La questione è lo stretch dell'immagine, che non riesco a capire come rendere proporzionale alla selezione impostata, questo il codice che uso (quasi quello dell'esempio ufficiale)
Codice PHP:
<?php
/* Jcrop image cropping plugin for jQuery @copyright 2008 Kelly Hallman - more info: [url]http://deepliquid.com/content/Jcrop_Implementation_Theory.html[/url] */
if ($_SERVER['REQUEST_METHOD']=='POST'){
$src = 'demo_files/flowers.jpg'; //poi pesca da upload
$jpeg_quality = 99;
$dst_w = $_POST['w'];
$dst_h = $_POST['h'];
$src_x = $_POST['x'];
$src_y = $_POST['y'];
$dst_x = 0;
$dst_y = 0;
list($src_w,$src_h) = getimagesize($src);
// $dst_h = round(($src_h*$dst_w) / $src_w,0);
$img_r = imagecreatefromjpeg($src);
$dst_r = ImageCreateTrueColor($dst_w, $dst_h);
/* imagecopyresampled (
resource $dst_image, // immagine destinazione
resource $src_image, // immagine sorgente
int $dst_x , // coordinate x immagine destinazione
int $dst_y , // coordinate y immagine destinazione
int $src_x , // coordinate x immagine sorgente
int $src_y , // coordinate y immagine sorgente
int $dst_w , // larghezza immagine destinazione
int $dst_h , // altezza immagine destinazione
int $src_w , // larghezza immagine sorgente
int $src_h ) // altezza immagine sorgente
// php.net/manual/en/function.imagecopyresampled.php */
imagecopyresampled ($dst_r,
$img_r,
$dst_x,
$dst_y,
$src_x,
$src_y,
$dst_w,
$dst_h,
$src_w,
$src_h);
header('Content-type: image/jpeg');
imagejpeg($dst_r, null,$jpeg_quality);
exit;
}
?><html>....etc etc
il contenuto head
Codice PHP:
<script src="../js/jquery.min.js"></script>
<script src="../js/jquery.Jcrop.js"></script>
<script language="Javascript">
$(function(){
$('#cropbox').Jcrop({
//aspectRatio: 1, // mantiene la seleziona vincolata
onSelect: updateCoords
});
});
function updateCoords(c) {
$('#x').val(c.x);
$('#y').val(c.y);
$('#x2').val(c.x2);
$('#y2').val(c.y2);
$('#w').val(c.w);
$('#h').val(c.h); };
function checkCoords() {
if (parseInt($('#w').val())) return true;
alert('Seleziona un\'area di ritaglio prima di ritagliare l\'immagine.');
return false; };
</script>
E l'html che metto solo per chiarezza ed avere tutto il quadro:
Codice PHP:
<div id="outer">
<div class="jcExample">
<div class="article">
<h1>Test di crop immagine</h1>
[img]demo_files/flowers.jpg[/img]
<form action="crop.php" method="post" onSubmit="return checkCoords();">
<label for="x">coordinate x1</label> <input type="text" size="4" id="x" name="x" />
<label for="y">coordinate y1</label> <input type="text" size="4" id="y" name="y" />
<label for="x2">coordinate x2</label> <input type="text" size="4" id="x2" name="x2" />
<label for="y2">coordinate y2</label> <input type="text" size="4" id="y2" name="y2" />
<label>altezza</label> <input type="text" size="4" id="w" name="w" />
<label>larghezza</label> <input type="text" size="4" id="h" name="h" />
<input type="submit" value="Ritaglia Immagine" />
</form>
JCrop: [url="http://deepliquid.com/content/Jcrop_Implementation_Theory.html"][url]http://deepliquid.com/content/Jcrop_Implementation_Theory.html[/url] [/url] </div>
</div>
</div>
quando effettuo il submit,voglio che l'immagine sia croppata all'esatto valore di selezione (e qui torna), ma il contenuto dell'immagine croppata viene stretchato (allungato), ho messo l'esempio qui per il testing
praticamente mi sembra di aver capito che mentre prende giustamente l'x e l'y delle coordinate, ma mantiene la proporzione dell'immagine originale che è (in questo caso) 500x370 e lo riporta anche nella nuova immagine allungandola...qualche suggerimento?