Copy cropped image

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
Isset1988
Δημοσιεύσεις: 44
Εγγραφή: 25 Νοέμ 2011 12:52
Τοποθεσία: California

Copy cropped image

Δημοσίευση από Isset1988 » 20 Ιουν 2012 11:53

Καλημέρα παιδιά.

Χρησιμοποιώ αυτό το script ώστε ο χρήστης να επιλέξει το σημείο της εικόνας που τον ενδιαφέρει.

Το script μου βγάζει σαν αποτέλεσμα x1,y1,x2,y2,width,height. Θέλω να χρησιμοποιήσω τα αποτελέσματα για να στείλω την κομμένη εικόνα σε ένα φάκελο images.

Δοκίμασα το παρακάτω, αλλα ενώ κόβει την εικόνα, μου εμφανίζει ένα μαύρο πλαίσιο αντί για την κομμένη εικόνα.

Κώδικας: Επιλογή όλων

$x1 =$_POST['x1'];
$y1 =$_POST['y1'];
$x2 =$_POST['x2'];
$y2 =$_POST['y2'];
$new_width =$_POST['width'];
$new_height =$_POST['height'];
$width= 500;
$height = 333;

$uploadedfile= 'castle.jpg';
$src = imagecreatefromjpeg($uploadedfile);
$tmp=imagecreatetruecolor($new_width,$new_height);

$filename = 'images/castle.jpg';

imagecopyresampled($tmp,$src,$x1,$y1,x2,$y2,$new_width,$new_height,$width,$height);
imagejpeg($tmp,$filename,100);
Καμία Ιδέα :-?
Εικόνα

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Copy cropped image

Δημοσίευση από korgr » 20 Ιουν 2012 13:13

Το castle.jpg υπάρχει στο root folder?

Άβαταρ μέλους
Isset1988
Δημοσιεύσεις: 44
Εγγραφή: 25 Νοέμ 2011 12:52
Τοποθεσία: California

Copy cropped image

Δημοσίευση από Isset1988 » 20 Ιουν 2012 13:13

ναι υπάρχει. :)
Το πρόβλημα μου είναι πως θα κόψω μία jpg,gif,png εικόνα έχοντας όλα τα παραπάνω στοιχεία και ταυτόχρονα να την αποθυκεύσω σε ένα folder images.

Κατάλαβα πως για κάθε τύπο εικόνας πρέπει να αλλάζω και το imagecreate function.

Κώδικας: Επιλογή όλων

imagecreatefrompng($src);
imagecreatefromjpg($src);
imagecreatefromgif($src);

Ένα νέο παράδειγμα είναι να κόψω μία εικόνα hi.png στον root folder και η κομμένη εικόνα να αποθηκευτεί στον φάκελο images
Αλλά δεν καταφέρνω να την κόψω και να την αποθηκεύσω

Κώδικας: Επιλογή όλων

$src = imagecreatefrompng('hi.png');
$dest = imagecreatetruecolor(648,432);
imagecopy($dest, $src, 0, 0, 20, 13, 80, 40);
:(

Σε ευχαριστώ πολύ!
Εικόνα

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Copy cropped image

Δημοσίευση από fafos » 20 Ιουν 2012 19:03

to cropping se png kai gif den synistatai... parakato einai mia function pou xrhsimopoiousa ego otan hmoun neos :lol:

opos vlepeis den xreiazese ta x2 kai y2 kathos kai tis diastaseis tou arxikou image:

Κώδικας: Επιλογή όλων

<?
	$x1 = $_POST&#91;'x1'&#93;;
	$y1 = $_POST&#91;'y1'&#93;;

	$thumb_width = $_POST&#91;'width'&#93;;
	$thumb_height = $_POST&#91;'height'&#93;;

	function createThumbs&#40; $pathToImages, $pathToThumbs, $thumbWidth, $thumbHeight, $uploadedfile, $thumbName &#41;
	&#123;
		global $x1;
		global $y1;

		$dir = opendir&#40; $pathToImages &#41;;

		//image format
		$ext = explode&#40; '.', $pathToImages.$uploadedfile &#41;;
		$ext = strtolower&#40; end&#40; $ext &#41; &#41;;

		if &#40; $ext == 'jpg' &#41;
		&#123;
			$img = imagecreatefromjpeg&#40; $pathToImages.$uploadedfile &#41;;
			$dst = ImageCreateTrueColor&#40; $thumbWidth, $thumbHeight &#41;;
		&#125; elseif &#40; $ext == 'png' &#41;
		&#123;
			$img = imagecreatefrompng&#40; $pathToImages.$uploadedfile &#41;;
			$dst = ImageCreateTrueColor&#40; $thumbWidth, $thumbHeight &#41;;
			$color = imagealphablending&#40; $dst, false &#41;;
			$color = imagecolorallocatealpha&#40; $dst, 0, 0, 0, 127 &#41;;
			$color = imagecolortransparent&#40; $dst, $color &#41;;
			imagefill&#40; $dst, 0, 0, $color &#41;;
		&#125; elseif &#40; $ext == 'gif' &#41;
		&#123;
			$img = imagecreatefromgif&#40; $pathToImages.$uploadedfile &#41;;
			$dst = ImageCreateTrueColor&#40; $thumbWidth, $thumbHeight &#41;;
			$color = imagecolortransparent&#40; $dst &#41;;
			imagefill&#40; $dst, 0, 0, $color &#41;;
		&#125;

		imagecopy&#40; $dst, $img, 0, 0, $x1, $y1, $thumbWidth, $thumbHeight &#41;;

		if &#40; $ext == 'jpg' &#41;
		&#123;
			imagejpeg&#40; $dst, $pathToThumbs.$thumbName, 100 &#41;;
		&#125; elseif &#40; $ext == 'png' &#41;
		&#123;
			imagepng&#40; $dst, $pathToThumbs.$thumbName, 9 &#41;;
		&#125; elseif &#40; $ext == 'gif' &#41;
		&#123;
			imagegif&#40; $dst, $pathToThumbs.$thumbName, 100 &#41;;
		&#125;

		closedir&#40; $dir &#41;;

	&#125;

	//NORMAL IMAGE
	$pathToImages = './';
	$uploadedfile = 'castle.jpg';

	//NEW IMAGE
	$pathToThumbs = 'images/';
	$thumbName = 'castle.jpg';

	//creatE thumbnail
	createThumbs&#40; $pathToImages, $pathToThumbs, $thumb_width, $thumb_height, $uploadedfile, $thumbName &#41;;
?>
<img src="images/castle.jpg" />

exo kai thn dynatothta cropping gia gifs kai pngs alla opos eipa den proteinetai...
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Isset1988
Δημοσιεύσεις: 44
Εγγραφή: 25 Νοέμ 2011 12:52
Τοποθεσία: California

Copy cropped image

Δημοσίευση από Isset1988 » 20 Ιουν 2012 19:52

Η εικόνα που έχω βάλει στον image folder είναι αυτή

Αλλάζοντας τις διαστάσεις στο php αρχείο

Κώδικας: Επιλογή όλων

<? 
   $x1 = 100; 
   $y1 = 200; 

   $thumb_width = 500; 
   $thumb_height = 300; 

   function createThumbs&#40; $pathToImages, $pathToThumbs, $thumbWidth, $thumbHeight, $uploadedfile, $thumbName &#41; 
   &#123; 
      global $x1; 
      global $y1; 

      $dir = opendir&#40; $pathToImages &#41;; 

      //image format 
      $ext = explode&#40; '.', $pathToImages.$uploadedfile &#41;; 
      $ext = strtolower&#40; end&#40; $ext &#41; &#41;; 

      if &#40; $ext == 'jpg' &#41; 
      &#123; 
         $img = imagecreatefromjpeg&#40; $pathToImages.$uploadedfile &#41;; 
         $dst = ImageCreateTrueColor&#40; $thumbWidth, $thumbHeight &#41;; 
      &#125; elseif &#40; $ext == 'png' &#41; 
      &#123; 
         $img = imagecreatefrompng&#40; $pathToImages.$uploadedfile &#41;; 
         $dst = ImageCreateTrueColor&#40; $thumbWidth, $thumbHeight &#41;; 
         $color = imagealphablending&#40; $dst, false &#41;; 
         $color = imagecolorallocatealpha&#40; $dst, 0, 0, 0, 127 &#41;; 
         $color = imagecolortransparent&#40; $dst, $color &#41;; 
         imagefill&#40; $dst, 0, 0, $color &#41;; 
      &#125; elseif &#40; $ext == 'gif' &#41; 
      &#123; 
         $img = imagecreatefromgif&#40; $pathToImages.$uploadedfile &#41;; 
         $dst = ImageCreateTrueColor&#40; $thumbWidth, $thumbHeight &#41;; 
         $color = imagecolortransparent&#40; $dst &#41;; 
         imagefill&#40; $dst, 0, 0, $color &#41;; 
      &#125; 

      imagecopy&#40; $dst, $img, 0, 0, $x1, $y1, $thumbWidth, $thumbHeight &#41;; 

      if &#40; $ext == 'jpg' &#41; 
      &#123; 
         imagejpeg&#40; $dst, $pathToThumbs.$thumbName, 100 &#41;; 
      &#125; elseif &#40; $ext == 'png' &#41; 
      &#123; 
         imagepng&#40; $dst, $pathToThumbs.$thumbName, 9 &#41;; 
      &#125; elseif &#40; $ext == 'gif' &#41; 
      &#123; 
         imagegif&#40; $dst, $pathToThumbs.$thumbName, 100 &#41;; 
      &#125; 

      closedir&#40; $dir &#41;; 

   &#125; 

   //NORMAL IMAGE 
   $pathToImages = './'; 
   $uploadedfile = 'castle.jpg'; 

   //NEW IMAGE 
   $pathToThumbs = 'images/'; 
   $thumbName = 'castle.jpg'; 

   //creatE thumbnail 
   createThumbs&#40; $pathToImages, $pathToThumbs, $thumb_width, $thumb_height, $uploadedfile, $thumbName &#41;; 
?> 
<img src="images/castle.jpg" />
Αν πατήσεις το new.php, θα δείς ότι κάνει αντικατάσταση την εικόνα, αλλά την αποθηκεύει μαύρη. Γιατί? Αυτό συμβαίνει σε όλα τα script που έχω δοκιμάσει. :(
Εικόνα

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Copy cropped image

Δημοσίευση από fafos » 20 Ιουν 2012 20:20

logika prepei na sou vgazei mia nea photo 500X300 me meros ths palias photo kai h ypoloiph maurh san kaliakouda..

1. an sthn vgazei olh maurh exeis thema me thn GD

2. an sou vgazei meros ths opos perigrafo parapano einai giati ta x,y einai lathos... an htan:

$x1 = 0;
$y1 = 33;

tha sou evgaze thn sosth eikona/mikrografia
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Isset1988
Δημοσιεύσεις: 44
Εγγραφή: 25 Νοέμ 2011 12:52
Τοποθεσία: California

Copy cropped image

Δημοσίευση από Isset1988 » 20 Ιουν 2012 20:44

Δυστυχώς όλα φαίνονται μαύρα. Το έχεις δοκιμάσει το script σε κάποιον server? Αν δουλεύει σε σένα μάλλον ο server μου δεν έχει GD Graphics και πρέπει να ψάξω άλλο script :)

Αυτό που πρέπει να κάνω βρίσκεται στο πρώτο post, οπότε μάλλον ξεφύγαμε λίγο.

Σε ευχαριστώ για τις απαντήσεις!
Εικόνα

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Copy cropped image

Δημοσίευση από fafos » 20 Ιουν 2012 20:47

to douleueis topika (apo to pc sou )? an nai xrhsimopoieis xampp h wampserver?

live demo: http://istopoli.com/tuts/crop/
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Isset1988
Δημοσιεύσεις: 44
Εγγραφή: 25 Νοέμ 2011 12:52
Τοποθεσία: California

Copy cropped image

Δημοσίευση από Isset1988 » 20 Ιουν 2012 20:52

Το δουλεύω σε shared server.
Εικόνα

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Copy cropped image

Δημοσίευση από fafos » 20 Ιουν 2012 21:01

vale ton kodika se ena arxeio kai anevaseto ston server.. trexto gia na deis ti mhnyma pairneis gia thn gd

Κώδικας: Επιλογή όλων

<?
function checkgd&#40;&#41; &#123;
	ob_start&#40;&#41;; // turn on output buffering
	phpinfo&#40;8&#41;; // display loaded modules and their settings
	$phpinfo = ob_get_contents&#40;&#41;; // get contents of output buffer
	ob_end_clean&#40;&#41;; // erase contents of output buffer and turn buffering off
	
	$phpinfo = strip_tags&#40;$phpinfo&#41;; // strip html and php tags
	$phpinfo = stristr&#40;$phpinfo, "gd version"&#41;; // return everything after...
	$phpinfo = stristr&#40;$phpinfo, "version"&#41;; // return everything after...
	
	$tmp = explode&#40;"\n", $phpinfo&#41;;
	$phpinfo = $tmp&#91;0&#93;;
	
	preg_match&#40;'/\d/', $phpinfo, $version&#41;; // grab 1st single digit character
	if&#40;$version&#91;0&#93; >= '1'&#41; &#123; return true; &#125;
	else &#123; return false; &#125;
&#125;

			if&#40;checkgd&#40;&#41;&#41; &#123;
				echo " exeis gd";
			&#125; else &#123;
				echo "papala gd";
			&#125;
?>
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Isset1988
Δημοσιεύσεις: 44
Εγγραφή: 25 Νοέμ 2011 12:52
Τοποθεσία: California

Copy cropped image

Δημοσίευση από Isset1988 » 20 Ιουν 2012 21:06

Έχω GD κατά τα λεγόμενά του.
Μου κάνεις τη χάρη να μου επισυνάψεις ότι έχεις ανεβάσει στο δικό σου server, ώστε να ξαναδοκιμάσω?

Thanks!!!
Εικόνα

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Copy cropped image

Δημοσίευση από fafos » 20 Ιουν 2012 21:13

http://istopoli.com/tuts/crop/crop.zip

isos xreiastei na doseis chmod=777 ston fakelo images
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Isset1988
Δημοσιεύσεις: 44
Εγγραφή: 25 Νοέμ 2011 12:52
Τοποθεσία: California

Copy cropped image

Δημοσίευση από Isset1988 » 20 Ιουν 2012 21:17

Δεν το πιστεύω ότι ήταν τα δικαιώματα 777 το πρόβλημα και σας έβαλα όλους να γράφετε κώδικες.
Όλα δουλεύουν τέλεια.

Σε ευχαριστώ πάρα μα πάρα πολύ! :kaloe: :D
Εικόνα

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Copy cropped image

Δημοσίευση από fafos » 20 Ιουν 2012 21:21

Isset1988 έγραψε:Δεν το πιστεύω ότι ήταν τα δικαιώματα 777 το πρόβλημα και σας έβαλα όλους να γράφετε κώδικες.
Όλα δουλεύουν τέλεια.

Σε ευχαριστώ πάρα μα πάρα πολύ! :kaloe: :D
symvainei kai sta kalytera spitia... ase ta euxaristo kai steile to xrhma... :lol:
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Isset1988
Δημοσιεύσεις: 44
Εγγραφή: 25 Νοέμ 2011 12:52
Τοποθεσία: California

Copy cropped image

Δημοσίευση από Isset1988 » 20 Ιουν 2012 21:23

Στείλε acc και στέλνω! :P

Thanks Again! :D


Thread Status: Solved
Εικόνα

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης