2016-05-28 21 views
0

Ich brauche Hilfe mit meiner Implementierung von JCrop. Ich habe versucht, dem Handbuch zu folgen, aber wenn ich einen Bereich auswähle, wird nicht wirklich ausgewählt, was ich ausgewählt habe. Stattdessen nimmt es einen Bereich außerhalb meiner Auswahl. Manchmal nimmt es den Bereich fast richtig (ich denke wegen der Fotogröße), aber meistens nimmt es falschen Bereich. Bitte helfen Sie. Hier ist mein Code:JCrop den falschen Bereich zuschneiden

Hinweis $ Foto ist das hochgeladene Bild. Es wird korrekt hochgeladen, also kein Problem.

Die 120 x 120 Pixel sind die Pixel, auf die ich die hochgeladenen Bilder speichern möchte, um Speicherplatz zu sparen. Auch hier ist die CSS des <img> Elements, wo ich das Bild zum Zuschneiden anzuzeigen:

max-width: 100%; 
height: auto; 
display: inline-block; 
position: relative;  

Hier ist mein PHP-Code:

$twidth = 120; 
$theight = 120; 
$quality = 90; 
$src = imagecreatefromjpeg($photo); 
$dst = ImageCreateTrueColor($twidth, $theight); 
$x = $_POST['x']; 
$y = $_POST['y']; 
$w = $_POST['w']; 
$h = $_POST['h']; 
imagecopyresampled($dst, $src, 0, 0, $x, $y, $twidth, $theight, $w, $h); 
imagejpeg($dst, $photo, $quality); 
+0

Ich löste es bereits. Ich habe das Bild neu abgetastet, als ich es zum ersten Mal hochgeladen habe, so dass der JCrop bereits an dem neuen, neu aufgenommenen Bild arbeitet, nicht am Originalbild. Die Bildgröße wirkt sich wirklich auf die Makroaufnahme aus. Während ich das Bild auf meine Seite passte, schneidet der JCrop das Originalbild, das größer ist; also schneidet es nicht richtig ab. – iPhoneJavaDev

Antwort

0

Das Problem hierbei ist, dass Sie das Bild Feld mit CSS resizen. Dies schafft Schwierigkeiten für das Skript, um den richtigen Bereich zu finden. Stattdessen sollten Sie wie unten die Box Breite/Höhe mit Jcrop Funktion einschränken:

$('#cropbox').Jcrop({ 
     boxWidth: 480, //Maximum width you want for your bigger images 
     boxHeight: 480, //Maximum Height for your bigger images 
... 
}); 

Wenn Sie diese Jcrop Einstellung verwenden sie den gewünschten Bereich nehmen würde, sonst wird es nicht wie erwartet funktioniert.

Beste Wünsche