Ich habe versucht, herauszufinden, wo das Problem den ganzen Tag lang ist, schrieb ich einige PHP-Code zum Einbetten von Text in einem gegebenen Bild. Ich platziere alle drei Buchstaben in jedem Pixel, indem ich seinen ASCII-Wert als RGB-Werte verwende. Mein Problem ist, dass wenn ich das Skript starte, es für immer lädt. Ich denke, ich habe einige Probleme mit meinem Code, aber ich kann es nicht herausfinden, der Debugger hat auch nicht viel geholfen. Hier ist mein Code:PHP-Skript wird für immer geladen und zeigt keine Ausgabe
<?php
$img = imagecreatefromjpeg ("https://dataencrypt.xyz/testimage.jpg");
$data = "abcdefghi"; //example
if($q=strlen($data)%3!=0){
$q==1?$data.="--":$data.="-";
}
if($img!=false){
for($i = 0;$i<(strlen($data)-3);$i+3){
$part = substr ($data , $i,3 );
$color = getEncryptedColor($img,$part);
imagesetpixel($img, $i,$i, $color);
}
}
$decrypted = decryptDataFromImage($img,0,0); // get the first 3 letters.
echo "".$decrypted;
imagedestroy($img);
function getEncryptedColor($img,$string){
return imagecolorallocate($img, ord($string[0]), ord($string[1]), ord($string[2]));
}
function printImageValues($image,$num){
for($x = 0;$x<$num;$x++){
echo "\n".imagecolorat($image, $x, $x);
}
echo "--END--";
}
function decryptDataFromImage($img,$x,$y){
$currpixel = imagecolorat($img, $x, $y);
$colors = imagecolorsforindex($img, $currpixel);
$str = "".chr($colors["red"]).chr($colors["green"]).chr($colors["blue"]);
return $str;
}
?>
Möglicherweise ist das nicht das einzige Problem, aber die erste Schleife wird niemals beendet - Sie müssen '$ i + = 3 anstelle von $ i + 3' verwenden – iainn
Die einzige Schleife, die Sie haben, ist in' printImageValues 'aber ich kann nicht sehen, wo Sie diese Funktion nennen. – Andreas