Witam, mam pytanko...
Ponieważ bawię się imageareaselect i wszystko działa bez zarzutu oprócz wysylania pliku.
Zapraszam na stronę http://scatola.pl/Jcrop/demos/aaaa.php aby obejrzeć powstający błąd.

na zdjęciach 500x370 jest idealnie.
Chciałbym was poprosić o sprawdzenie kodu i podpowiedzenie mi co moge w tej sytuacji zrobić, domyslam się że muszę:
albo kazde zdjecie ustawić pod 500x370
albo dopasowywać skrypt do zdjęcia...
szczerze mowiac nie wiem co bedzie najlepszym rozwiązaniem...
  1. if ($_SERVER['REQUEST_METHOD'] == 'POST')
  2. {
  3. $targ_w = $targ_h = 150;
  4. $jpeg_quality = 90;
  5.  
  6. $src = 'demo_files/31.jpg';
  7. $img_r = imagecreatefromjpeg($src);
  8. $dst_r = ImageCreateTrueColor( $targ_w, $targ_h );
  9.  
  10. imagecopyresampled($dst_r,$img_r,0,0,$_POST['x'],$_POST['y'],
  11. $targ_w,$targ_h,$_POST['w'],$_POST['h']);
  12.  
  13. header('Content-type: image/jpeg');
  14. imagejpeg($dst_r,null,$jpeg_quality);
  15.  
  16. }
  17.  




  1. <script language="Javascript">
  2. $(function(){
  3.  
  4. $('#cropbox').Jcrop({
  5. aspectRatio: 1,
  6. onSelect: updateCoords,
  7. onChange: showPreview,
  8. });
  9.  
  10. });
  11.  
  12. function updateCoords(c)
  13. {
  14. $('#x').val(c.x);
  15. $('#y').val(c.y);
  16. $('#w').val(c.w);
  17. $('#h').val(c.h);
  18. };
  19.  
  20. function checkCoords()
  21. {
  22. if (parseInt($('#w').val())) return true;
  23. alert('Please select a crop region then press submit.');
  24. return false;
  25. };
  26.  
  27. function zmien(){
  28.  
  29. jQuery('#cropbox').Jcrop({
  30. onChange: showPreview,
  31. onSelect: showPreview,
  32. aspectRatio: 1
  33. });
  34.  
  35. };
  36.  
  37. function showPreview(coords)
  38. {
  39. if (parseInt(coords.w) > 0)
  40. {
  41. var rx = 100 / coords.w;
  42. var ry = 100 / coords.h;
  43.  
  44. jQuery('#preview').css({
  45. width: Math.round(rx * 500) + 'px',
  46. height: Math.round(ry * 370) + 'px',
  47. marginLeft: '-' + Math.round(rx * coords.x) + 'px',
  48. marginTop: '-' + Math.round(ry * coords.y) + 'px'
  49. });
  50. }
  51. }
  52.  
  53. </script>


Spostrzegłem, że jak tutaj:
  1. jQuery('#preview').css({
  2. width: Math.round(rx * 320) + 'px',
  3. height: Math.round(ry * 240) + 'px',
  4. marginLeft: '-' + Math.round(rx * coords.x) + 'px',
  5. marginTop: '-' + Math.round(ry * coords.y) + 'px'
  6. });


ustawie rozdzielczoś taka jak ma zdjęcie, a tu:

  1. <img src="demo_files/31.jpg" id="cropbox"/>


nie dam width i height to jest wszystko ok,

czyli musiałbym ustawić w miejscach 320 i 240 w JS zeby automatycznie pobierał dane obrazka, problemy w tym są 2
1.nie wiem jak to zrobić
2.jeżeli obrazek bedzie miał dużą rozdzielczość to mi się dopasuje do całego okna i rozwali wygląd:/ więc wolalbym ze te dane były stałe...