Προς το περιεχόμενο

Smooth image με averaging


zn2709

Προτεινόμενες αναρτήσεις

Για να παίξεις τώρα με javascript και να κάνεις αυτό που θέλεις χρειάζεσαι ο χρήστης να υποστηρίζει HTML5 γιατί μόνο μέσω του canvas μπορείς να παίξεις. Ρίξε μια ματιά εδώ.

 

Αλλιώς μπορείς πάλι να παίξεις με PHP, δεν έχεις τέτοιους περιορισμόυς. Το δεύτερο παράδειγμα εδώ θα σου φανεί χρήσιμο.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 95
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Συχνή συμμετοχή στο θέμα

Δημοσιευμένες Εικόνες

Για να παίξεις τώρα με javascript και να κάνεις αυτό που θέλεις χρειάζεσαι ο χρήστης να υποστηρίζει HTML5 γιατί μόνο μέσω του canvas μπορείς να παίξεις. Ρίξε μια ματιά εδώ.

 

Αλλιώς μπορείς πάλι να παίξεις με PHP, δεν έχεις τέτοιους περιορισμόυς. Το δεύτερο παράδειγμα εδώ θα σου φανεί χρήσιμο.

 

Ωραία..θα το κοιτάξω..επίσης σκέφτηκα τη λύση με applet..στέκει ή δν γίνεται?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Για να παίξεις τώρα με javascript και να κάνεις αυτό που θέλεις χρειάζεσαι ο χρήστης να υποστηρίζει HTML5 γιατί μόνο μέσω του canvas μπορείς να παίξεις. Ρίξε μια ματιά εδώ.

 

Αλλιώς μπορείς πάλι να παίξεις με PHP, δεν έχεις τέτοιους περιορισμόυς. Το δεύτερο παράδειγμα εδώ θα σου φανεί χρήσιμο.

 

 

Καταρχήν το HTML canvas δεν είναι μόνο για να δημιουργήσεις εσύ κάποια εικόνα ή κάτι τέτοιο?

επίσης, για το δεύτερο λινκ σου, χρησιμοποιώ

><?php
$im = imagecreatefrompng("php.png");
$rgb = imagecolorat($im, 10, 15);

$colors = imagecolorsforindex($im, $rgb);

var_dump($colors);
?>

και βάζω όπου "php.png" μία δική μου εικόνα η οποία είναι στον φάκελο htdocs του xampp. δν μου δίνει τα αποτελέσματα της εικόνας αλλά παίρνω αυτό : Array ( [red] => 255 [green] => 255 [blue] => 255 [alpha] => 0 )

Πρέπει να ανεβάσω άλλη εικόνα, πρέπει να αλλάξω κάτι? Έχω καταμπερδευτεί..:/

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Στο canvas μπορείς να φορτώσεις και δική σου εικόνα. [Link]

 

Η function που χρησιμοποιείς (imagecolorsforindex) καταλαβαίνεις τι ακριβώς κάνει; Αν δεν καταλάβεις τι ακριβώς κάνεις δεν θα μπορέσεις να λύσεις το πρόβλημά σου. Διάβασε λίγο το τι κάνουν αυτές οι εντολές που χρησιμοποιείς και πιστεύω θα βγάλεις άκρη. Αν όχι, τότε ρώτα και θα σου πω :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Στο canvas μπορείς να φορτώσεις και δική σου εικόνα. [Link]

 

Η function που χρησιμοποιείς (imagecolorsforindex) καταλαβαίνεις τι ακριβώς κάνει; Αν δεν καταλάβεις τι ακριβώς κάνεις δεν θα μπορέσεις να λύσεις το πρόβλημά σου. Διάβασε λίγο το τι κάνουν αυτές οι εντολές που χρησιμοποιείς και πιστεύω θα βγάλεις άκρη. Αν όχι, τότε ρώτα και θα σου πω :)

 

Η imagecolorsforindex δεν επιστρέφει τις τιμές rgb σε ένα array? Επίσης δοκίμασα να χρησιμοποιήσω και την imagecolorat

που επίσης βάζω δική μου εικόνα και το αποτέλεσμα είναι πάλι : int(255) int(255) int(255)..

Για να σου εξηγήσω ακριβώς τι κάνω θα σου δείξω τον κώδικα..

αυτό είναι το html αρχείο που έχω την φόρμα για να ανεβάσει κάποιος εικόνα:

><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-7" />
<title>Untitled Document</title>
</head>
<body>
<form action="http://127.0.0.1/sat1.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>

 

και αυτό είναι το php αρχείο:

><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-7" />
<title>Untitled Document</title>
</head>

<body>

<?php
if ($_FILES["file"]["error"] > 0)
 {
 echo "Error: " . $_FILES["file"]["error"] . "<br />";
 }
else
 {
 echo "Upload: " . $_FILES["file"]["name"] . "<br />";
 echo "Type: " . $_FILES["file"]["type"] . "<br />";
 echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
 echo "Stored in: " . $_FILES["file"]["tmp_name"];
 }
?> 
 <br />
<br />

<?php
$im = imagecreatefrompng("Χωρίς τίτλο.png");
$rgb = imagecolorat($im, 0, 5);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;

var_dump($r, $g, $;
?>
</body>
</html>

η εικόνα "Χωρίς τίτλο.png" βρίσκεται στον φάκελο htdocs όπως και τα αρχεία html και php.

 

για να με βοήθησεις παραπάνω αν μπορείς και να σε βοηθήσω κ γω για να μην σε πρήζω και σε κουράζω..μπορείς να εξηγήσεις με βήματα περίπου τι πρέπει να κάνω?όχι τη λύση, απλά πως πρέπει να κινηθώ..:) θα σου ήμουν ευγνώμων

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Καταρχάς δοκίμασε να αποφέυγεις τα ελληνικά κυρίως στα ονόματα των αρχείων. Αρκετές φορές δημιουργούν προβλήματα. Ακόμα καλύτερα να αποφέυγεις και τα κενά.

 

Πέραν αυτού και οι δύο συναρτήσεις (imagecolorat,imagecolorsforindex) σου επιστρέφουν τις τιμές για ένα και μόνο ένα pixel το οποίο ορίζεις εσύ στα ορίσματά τους. Εφόσον θέλεις να πάρεις για περισσότερα pixel θα πρέπει να κάνεις ένα loop όπου θα τα διαχειρίζεσαι όλα.

Ένα παράδειγμα σε ψευδοκώδικα όπου θα σου βγάζει σε έναν πίνακα την μέση τιμή ανά 3x3 pixel (δεδομένου οτι οι διαστάσεις της εικόνας είναι πολλαπλάσια του 3):

 

>
for ( pixelx = 0; pixelx < image_width; pixelx++)
 for ( pixely = 0; pixely < image_height; pixely++)
   mean[pixely * image_width / 3 + pixelx / 3] += pixelcolor(image,pixelx,pixely); // Εννοείται πως ο πίνακας αυτός θα πρέπει να είναι αρχικοποιημένος με μηδενικές τιμές.

for( i = 0; i < image_width * image_height / 9; i++)
 mean[i] = mean[i] / 9;
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Καταρχάς δοκίμασε να αποφέυγεις τα ελληνικά κυρίως στα ονόματα των αρχείων. Αρκετές φορές δημιουργούν προβλήματα. Ακόμα καλύτερα να αποφέυγεις και τα κενά.

 

Πέραν αυτού και οι δύο συναρτήσεις (imagecolorat,imagecolorsforindex) σου επιστρέφουν τις τιμές για ένα και μόνο ένα pixel το οποίο ορίζεις εσύ στα ορίσματά τους. Εφόσον θέλεις να πάρεις για περισσότερα pixel θα πρέπει να κάνεις ένα loop όπου θα τα διαχειρίζεσαι όλα.

Ένα παράδειγμα σε ψευδοκώδικα όπου θα σου βγάζει σε έναν πίνακα την μέση τιμή ανά 3x3 pixel (δεδομένου οτι οι διαστάσεις της εικόνας είναι πολλαπλάσια του 3):

 

>
for ( pixelx = 0; pixelx < image_width; pixelx++)
 for ( pixely = 0; pixely < image_height; pixely++)
   mean[pixely * image_width / 3 + pixelx / 3] += pixelcolor(image,pixelx,pixely); // Εννοείται πως ο πίνακας αυτός θα πρέπει να είναι αρχικοποιημένος με μηδενικές τιμές.

for( i = 0; i < image_width * image_height / 9; i++)
 mean[i] = mean[i] / 9;

 

 

Αυτό με βοήθησε αρκετά! :-D αυτο που πρεπει να κάνω είναι να ορίσω στον χρήστη το τι μεγέθος εικόνα θα βάλει έτσι ώστε να έχω έτοιμο το loop, να είναι πάντα ίδιο και να δουλεύει μόνο με αυτό το μέγεθος εικόνας??

 

προς το παρών έχω γράψει αυτό με το οποίο αρχικοποιώ τον πίνακα mean π είπες :

><?php

for ($i = 0; $i < $image_width; $i++)
for ($j = 0; j< $image_height; $j++)
	$mean[i][j] = 0;

for ( $pixelx = 0; $pixelx < $image_width; $pixelx++)
 for ( $pixely = 0; $pixely < $image_height; $pixely++)
   $mean[pixely * $image_width / 3 + $pixelx / 3] += $pixelcolor($image,$pixelx,$pixely); // Εννοείται πως ο πίνακας αυτός θα πρέπει να είναι αρχικοποιημένος με μηδενικές τιμές.

for( $i = 0; $i < $image_width * $image_height / 9; $i++)
 $mean[i] = $mean[i] / 9;



?>

 

:-) όπου pixelx,pixely,image_width και image_height τι πρέπει να έχω? τα πολλαπλάσια της εικόνας στα image_width και image_height αλλά πως θα τα βρίσκω αν η εικόνα είναι διαφορετικών διαστάσεων κάθε φορά?

Ευχαριστώ φίλε, μ'έχεις σώσει! :-D

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

έχω φτάσει εδώ:

><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-7" />
<title>Untitled Document</title>
</head>

<body>

<?php

if ($_FILES["file"]["error"] > 0)
 {
 echo "Error: " . $_FILES["file"]["error"] . "<br />";
 }
else
 {
 echo "Upload: " . $_FILES["file"]["name"] . "<br />";
 echo "Type: " . $_FILES["file"]["type"] . "<br />";
 echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
 echo "Stored in: " . $_FILES["file"]["tmp_name"];
 }
?> 
 <br />
<br />

<?php

$im = imagecreatefrompng("w.png");
$rgb = imagecolorat($im, 0, 5);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;

var_dump($r, $g, $;



?>
<br />

<?php

list($width, $height, $type, $attr) = getimagesize("w.png");

echo "Image width " .$width;
echo "<BR>";
echo "Image height " .$height;
echo "<BR>";
echo "Image type " .$type;
echo "<BR>";
echo "Attribute " .$attr;





for ($i = 0; $i < $width; $i++)
{for ($j = 0; $j< $height; $j++)
	{$mean[$i][$j] = 0;}
}

for ( $pixelx = 0; $pixelx < $width; $pixelx++)
 for ( $pixely = 0; $pixely < $height; $pixely++)
//γραμμή 65------>    $mean[$pixely * $width / 3 + $pixelx / 3] += imagecolorat($im,$pixelx,$pixely); //<------γραμμή 65

for( $i = 0; $i < $width * $height / 9; $i++)
 $mean[$i] = $mean[$i] / 9;



?>

</body>
</html>

 

και όταν το τρέχω παίρνω αυτό:

Upload: w.png

Type: image/png

Size: 21.5947265625 Kb

Stored in: C:\xampp\tmp\php7357.tmp

 

int(182) int(231) int(28)

Image width 162

Image height 81

Image type 3

Attribute width="162" height="81"

Fatal error: Unsupported operand types in C:\xampp\htdocs\sat1.php on line 65

 

Την γραμμή 65 στην έχω μαρκαρισμένη :)

 

ποιό είναι το λάθος? ευχαριστώ:-)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

κάνε ένα var_dump να δεις τι περιέχουν. Κάπου υπάρχει ασυμβατότητα.

Κάνεις πολλές πράξεις μέσα στον index του array. Δοκίμασε να τυπώσεις αρχικά τους indexes και να δεις αν όντως είναι αυτοί που περίμενες. Μετά δοκίμασε να δεις τι επιστρέφει η function που καλείς imagecolorat().

Δοκίμασε τα όλα ξεχωριστά και σίγουρα θα βρεις το λάθος.

 

Συμβουλή:

Μη γράφεις ένα κατεβατό κώδικα χωρίς να είσαι σίγουρος για το αποτέλεσμα πράξεων. Είναι καλύτερα να τεστάρεις κομμάτια κώδικα ξεχωριστά για να δεις τη συμπεριφορά τους.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Υπάρχει μια περίπτωση να χρειάζεσαι τρεις πίνακες. Έναν για κάθε χρώμα. Δοκίμασε αυτό που αναφέρει ο x_maras και δες τι τιμές έχουν οι μεταβλητές.

 

Όσο για τις διαστάσεις τις εικόνας, είδα οτι βρήκες πως να τις πάρεις. Εφόσον το κάνεις να δουλέψει στην τέλεια περίπτωση (οι εικόνες να είναι διαστάσεων που να είναι πολλαπλάσια του 3), θα πρέπει μετά να κάνεις λίγο tweaking για να δουλέψει γενικότερα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

επειδή δεν ήξερα τι κάνει το var_dump() έψαξα λίγο και βρήκα πως χρησιμοποιείται..τώρα, τρέχω αυτόν τον κώδικα:

><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-7" />
<title>Untitled Document</title>
</head>

<body>

<?php

if ($_FILES["file"]["error"] > 0)
 {
 echo "Error: " . $_FILES["file"]["error"] . "<br />";
 }
else
 {
 echo "Upload: " . $_FILES["file"]["name"] . "<br />";
 echo "Type: " . $_FILES["file"]["type"] . "<br />";
 echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
 echo "Stored in: " . $_FILES["file"]["tmp_name"];
 }
?> 
 <br />
<br />

<?php

$im = imagecreatefrompng("w.png");
$rgb = imagecolorat($im, 0, 5);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;

var_dump($r, $g, $;



?>
<br />

<?php

list($width, $height, $type, $attr) = getimagesize("w.png");

echo "Image width " .$width;
echo "<BR>";
echo "Image height " .$height;
echo "<BR>";
echo "Image type " .$type;
echo "<BR>";
echo "Attribute " .$attr;



for ($i = 0; $i < $width; $i++)
{for ($j = 0; $j< $height; $j++)
	{$mean[$i][$j] = 0;}
}
	
var_dump($mean);
for ( $pixelx = 0; $pixelx < $width; $pixelx++)
 for ( $pixely = 0; $pixely < $height; $pixely++)
 [b]var_dump($mean);[/b]
   $mean[$pixely * $width / 3 + $pixelx / 3] += imagecolorat($im,$pixelx,$pixely); // Εννοείται πως ο πίνακας αυτός θα πρέπει να είναι αρχικοποιημένος με μηδενικές τιμές.

for( $i = 0; $i < $width * $height / 9; $i++)
 $mean[$i] = $mean[$i] / 9;



?>

</body>
</html>

και παίρνω αυτό: " array(162) { [0]=> array(81) { [0]=> int(0) [1]=> int(0) [2]=> int(0) [3]=> int(0) [4]=> int(0) [5]=> int(0) [6]=> int(0) [7]=> int(0) [8]=> int(0) [9]=> int(0) [10]=> int(0) [11]=> int(0) [12]=> int(0) [13]=> int(0) [14]=> int(0) [15]=> int(0) [16]=> int(0) [17]=> int(0) [18]=> int(0) [19]=> int(0) [20]=> int(0) [21]=> int(0) [22]=> int(0) [23]=> int(0) [24]=> int(0) [25]=> int(0) [26]=> int(0) [27]=> int(0) [28]=> int(0) [29]=> int(0) [30]=> int(0) [31]=> int(0) [32]=> int(0) [33]=> int(0) [34]=> int(0) [35]=> int(0) [36]=> int(0) [37]=> int(0) [38]=> int(0) [39]=> int(0) [40]=> int(0) [41]=> int(0) [42]=> int(0) [43]=> int(0) [44]=> int(0) [45]=> int(0) [46]=> int(0) [47]=> int(0) [48]=> int(0) [49]=> int(0) [50]=> int(0) [51]=> int(0) [52]=> int(0) [53]=> int(0) [54]=> int(0) [55]=> int(0) [56]=> int(0) [57]=> int(0) [58]=> int(0) [59]=> int(0) [60]=> int(0) [61]=> int(0) [62]=> int(0) [63]=> int(0) [64]=> int(0) [65]=> int(0) [66]=> int(0) [67]=> int(0) [68]=> int(0) [69]=> int(0) [70]=> int(0) [71]=> int(0) [72]=> int(0) [73]=> int(0) [74]=> int(0) [75]=> int(0) [76]=> int(0) [77]=> int(0) [78]=> int(0) [79]=> int(0) [80]=> int(0) } [1]=> array(81) { [0]=> int(0) [1]=> int(0) [2]=> int(0) [3]=> int(0) [4]=> int(0) [5]=> int(0) [6]=> int(0) [7]=> int(0) [8]=> int(0) [9]=> int(0) [10]=> int(0) [11]=> int(0) [12]=> int(0) [13]=> int(0) [14]=> int(0) [15]=> int(0) [16]=> int(0) [17]=> int(0) [18]=> int(0) [19]=> int(0) [20]=> int(0) [21]=> int(0) [22]=> int(0) [23]=> int(0) [24]=> int(0) [25]=> int(0) [26]=> int(0) [27]=> int(0) [28]=> int(0) [29]=> int(0) [30]=> int(0) [31]=> int(0) [32]=> int(0) [33]=> int(0) [34]=> int(0) [35]=> int(0) [36]=> int(0) [37]=> int(0) [38]=> int(0) [39]=> int(0) [40]=> int(0) [41]=> int(0) [42]=> int(0) [43]=> int(0) [44]=> int(0) [45]=> int(0) [46]=> int(0) [47]=> int(0) [48]=> int(0) [49]=> int(0) [50]=> int(0) [51]=> int(0) [52]=> int(0) [53]=> int(0) [54]=> int(0) [55]=> int(0) [56]=> int(0) [57]=> int(0) [58]=> int(0) [59]=> int(0) [60]=> int(0) [61]=> int(0) [62]=> int(0) [63]=> int(0) [64]=> int(0) [65]=> int(0) [66]=> int(0) [67]=> int(0) [68]=> int(0) [69]=> int(0) [70]=> int(0) [71]=> int(0) [72]=> int(0) [73]=> int(0) [74]=> int(0) [75]=> int(0) [76]=> int(0) [77]=> int(0) [78]=> int(0) [79]=> int(0) [80]=> int(0) } [2]=> array(81) { [0]=> int(0) [1]=> int(0) [2]=> int(0) [3]=> int(0) [4]=> int(0) [5]=> int(0) [6]=> int(0) [7]=> int(0) [8]=> int(0) [9]=> int(0) [10]=> int(0) [11]=> int(0) [12]=> int(0) [13]=> int(0) [14]=> int(0) [15]=> int(0) [16]=> int(0) [17]=> int(0) [18]=> int(0) [19]=> int(0) [20]=> int(0) [21]=> int(0) [22]=> int(0) [23]=> int(0) [24]=> int(0) [25]=> int(0) [26]=> int(0) [27]=> int(0) [28]=> int(0) [29]=> int(0) [30]=> int(0) [31]=> int(0) [32]=> int(0) [33]=> "

 

και πολλά ακόμα με τον ίδιο τρόπο..φίλε x_maras τι εννοείς κάνω πολλές πράξεις στο index του array? το var_dump() το έχω βάλει σωστά?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το έχεις βάλει σε πολλά σημεία και εκτυπώνει τα πάντα. Λογικά δε καταλαβαίνεις τι συμβαίνει. Το var_dump το χρησιμοποιείς για debugging, για να δεις τι περιέχει μια μεταβλητή και τι τύπου είναι (π.χ. string, array, int etc)

 

Αυτο που σου είπα είναι να εκτυπώσεις το περιεχόμενο του

>$pixely * $width / 3 + $pixelx / 3

Τι θα σου επιστρέψει σε κάθε loop;;;;

Είναι αυτό που περίμενες;;;

 

Αν όχι τότε κάτι γίνεται σε αυτό το σημείο. Αν είναι αυτό που περίμενες τότε συμπεραίνεις ότι αυτό το κομμάτι είναι σωστό και κοιτά τι άλλο μπορεί να φταίει.

 

Κάτι ακόμη είναι να δεις τι προσθέτεις... Κάνεις πρόσθεση αριθμών ή κάτι άλλο που δε γίνεται

π.χ.

>
$mean[$pixely * $width / 3 + $pixelx / 3] += imagecolorat($im,$pixelx,$pixely);

Η παραπάνω γραμμή μεταφράζεται στην ακόλουθη

>
pinakas[index] = pinakas[index] + imagecolorat(parameters)

 

Απ' ότι είδα η imagecolorat επιστρέφει int. Αρα κάνεις πρόσθεση αριθμών. Περιέχει όμως ο pinakas[index] κάποιον αριθμό int???? Εδώ δοκιμάζει την var_dump για να δεις τι values θα έχει. Στην περίπτωση που ο πίνακας σου είναι σωστός για όλα τα index τότε κάτι τρέχει με τη μέθοδο και σου βγάζει error. Παίρνει η μέθοδος σε κάθε περίπτωση σωστές παραμετρους;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το έχεις βάλει σε πολλά σημεία και εκτυπώνει τα πάντα. Λογικά δε καταλαβαίνεις τι συμβαίνει. Το var_dump το χρησιμοποιείς για debugging, για να δεις τι περιέχει μια μεταβλητή και τι τύπου είναι (π.χ. string, array, int etc)

 

Αυτο που σου είπα είναι να εκτυπώσεις το περιεχόμενο του

>$pixely * $width / 3 + $pixelx / 3

Τι θα σου επιστρέψει σε κάθε loop;;;;

Είναι αυτό που περίμενες;;;

 

Αν όχι τότε κάτι γίνεται σε αυτό το σημείο. Αν είναι αυτό που περίμενες τότε συμπεραίνεις ότι αυτό το κομμάτι είναι σωστό και κοιτά τι άλλο μπορεί να φταίει.

 

Κάτι ακόμη είναι να δεις τι προσθέτεις... Κάνεις πρόσθεση αριθμών ή κάτι άλλο που δε γίνεται

π.χ.

>
$mean[$pixely * $width / 3 + $pixelx / 3] += imagecolorat($im,$pixelx,$pixely);

Η παραπάνω γραμμή μεταφράζεται στην ακόλουθη

>
pinakas[index] = pinakas[index] + imagecolorat(parameters)

 

Απ' ότι είδα η imagecolorat επιστρέφει int. Αρα κάνεις πρόσθεση αριθμών. Περιέχει όμως ο pinakas[index] κάποιον αριθμό int???? Εδώ δοκιμάζει την var_dump για να δεις τι values θα έχει. Στην περίπτωση που ο πίνακας σου είναι σωστός για όλα τα index τότε κάτι τρέχει με τη μέθοδο και σου βγάζει error. Παίρνει η μέθοδος σε κάθε περίπτωση σωστές παραμετρους;

 

βάζοντας var_dump για το index που μου είπες μου εμφανίζει αυτό : " float(54.333333333333) float(108.33333333333) float(162.33333333333) float(216.33333333333) float(270.33333333333) float(324.33333333333) float(378.33333333333) float(432.33333333333) float(486.33333333333) float(540.33333333333) float(594.33333333333) float(648.33333333333) float(702.33333333333) float(756.33333333333) float(810.33333333333) float(864.33333333333) float(918.33333333333) float(972.33333333333) float(1026.3333333333) float(1080.3333333333) float(1134.3333333333) float(1188.3333333333) float(1242.3333333333) float(1296.3333333333) float(1350.3333333333) float(1404.3333333333) float(1458.3333333333) float(1512.3333333333) float(1566.3333333333) float(1620.3333333333) float(1674.3333333333) float(1728.3333333333) float(1782.3333333333) float(1836.3333333333) float(1890.3333333333) float(1944.3333333333) float(1998.3333333333) float(2052.3333333333) float(2106.3333333333) float(2160.3333333333) float(2214.3333333333) float(2268.3333333333) float(2322.3333333333) float(2376.3333333333) float(2430.3333333333) float(2484.3333333333) float(2538.3333333333) float(2592.3333333333) float(2646.3333333333) float(2700.3333333333) float(2754.3333333333) float(2808.3333333333) float(2862.3333333333) float(2916.3333333333) float(2970.3333333333) float(3024.3333333333) float(3078.3333333333) float(3132.3333333333) float(3186.3333333333) float(3240.3333333333) float(3294.3333333333) float(3348.3333333333) float(3402.3333333333) float(3456.3333333333) float(3510.3333333333) float(3564.3333333333) float(3618.3333333333) float(3672.3333333333) float(3726.3333333333) float(3780.3333333333) float(3834.3333333333) float(3888.3333333333) float(3942.3333333333) float(3996.3333333333) float(4050.3333333333) float(4104.3333333333) float(4158.3333333333) float(4212.3333333333) float(4266.3333333333) float(4320.3333333333) float(4374.3333333333) float(54.666666666667) float(108.66666666667) float(162.66666666667) float(216.66666666667) float(270.66666666667) float(324.66666666667) float(378.66666666667) float(432.66666666667) float(486.66666666667) float(540.66666666667) float(594.66666666667) float(648.66666666667) float(702.66666666667) float(756.66666666667) float(810.66666666667) float(864.66666666667) float(918.66666666667) float(972.66666666667) float(1026.6666666667) float(1080.6666666667) float(1134.6666666667) float(1188.6666666667) float(1242.6666666667) float(1296.6666666667) float(1350.6666666667) float(1404.6666666667) float(1458.6666666667) float(1512.6666666667) float(1566.6666666667) float(1620.6666666667) float(1674.6666666667) float(1728.6666666667) float(1782.6666666667) float(1836.6666666667) float(1890.6666666667) float(1944.6666666667) float(1998.6666666667) float(2052.6666666667) float(2106.6666666667) float(2160.6666666667) float(2214.6666666667) float(2268.6666666667) float(2322.6666666667) float(2376.6666666667) float(2430.6666666667) float(2484.6666666667) float(2538.6666666667) float(2592.6666666667) float(2646.6666666667) float(2700.6666666667) float(2754.6666666667) float(2808.6666666667) float(2862.6666666667) float(2916.6666666667) float(2970.6666666667) float(3024.6666666667) float(3078.6666666667) float(3132.6666666667) float(3186.6666666667) float(3240.6666666667) float(3294.6666666667) float(3348.6666666667) float(3402.6666666667) float(3456.6666666667) float(3510.6666666667) float(3564.6666666667) float(3618.6666666667) float(3672.6666666667) float(3726.6666666667) float(3780.6666666667) float(3834.6666666667) float(3888.6666666667) float(3942.6666666667) float(3996.6666666667) float(4050.6666666667) float(4104.6666666667) float(4158.6666666667) float(4212.6666666667) float(4266.6666666667) float(4320.6666666667) float(4374.6666666667) int(55) int(109) int(163) int(217) int(271) int(325) int(379) int(433) int(487) int(541) int(595) int(649) int(703) int(757) int(811) int(865) int(919) int(973) int(1027) int(1081) int(1135) int(1189) int(1243) int(1297) int(1351) int(1405) int(1459) int(1513) int(1567) int(1621) int(1675) int(1729) int(1783) int(1837) int(1891) int(1945) int(1999) int(2053) int(2107) int(2161) int(2215) int(2269) int(2323) int(2377) int(2431) int(2485) int(2539) int(2593) int(2647) int(2701) int(2755) int(2809) int(2863) int(2917) int(2971) int(3025) int(3079) int(3133) int(3187) int(3241) int(3295) int(3349) int(3403) int(3457) int(3511) int(3565) int(3619) int(3673) int(3727) int(3781) int(3835) int(3889) int(3943) " που όπως είπες κ συ κάτι πάει στραβά γιατί περιμένουμε int σωστά?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Βασικά δε κατάλαβα γιατί έχεις κάνει όλες αυτές τις πράξεις... έχω χάσει και κάμποσα μηνύματα, θα ρίξω μια ματιά στα προηγούμενα να καταλάβω τη λογική πίσω από το κώδικά σου και θα προσπαθήσω να σου απαντήσω.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...