你有一个关联数组包含第一个元素中的文本和第二个元素中的图像。 你会如何声明这样的数组?
我有一个函数,我想生成一段随机文本。 然后它将文本转换为图像。 我想在返回值中包含text和Image(我认为数组会很好用)。
在6个字符的随机文本字符串下面,然后通过标题发送回图像。 但我想用2元素关联数组发回。 Elm1 =>随机文字 Elm2 =>生成的图像
所以它不是图像文件,而是生成的图像。
抱歉,我是PHP新手
//Get each letter in one variable, we will format all letters different
$letter1=substr($rand_str,0,1);
$letter2=substr($rand_str,1,1);
$letter3=substr($rand_str,2,1);
$letter4=substr($rand_str,3,1);
$letter5=substr($rand_str,4,1);
$letter6=substr($rand_str,5,1);
//Creates an image from a png file. If you want to use gif or jpg images, just use the coresponding functions: imagecreatefromjpeg and imagecreatefromgif.
$image=imagecreatefrompng("./noise.png");
//$image = imagecreate(160, 45);
//Get a random angle for each letter to be rotated with.
$angle1 = rand(-20, 20);
$angle2 = rand(-20, 20);
$angle3 = rand(-20, 20);
$angle4 = rand(-20, 20);
$angle5 = rand(-20, 20);
$angle6 = rand(-20, 20);
//Get a random font. (In this examples, the fonts are located in "fonts" directory and named from 1.ttf to 10.ttf)
$font1 = rand(1, 12).".ttf";
$font2 = rand(1, 12).".ttf";
$font3 = rand(1, 12).".ttf";
$font4 = rand(1, 12).".ttf";
$font5 = rand(1, 12).".ttf";
$font6 = rand(1, 12).".ttf";
$colors[0]=array(0,0,0);
$colors[1]=array(0,0,0);
$colors[2]=array(0,0,0);
$colors[3]=array(0,0,0);
$colors[4]=array(0,0,0);
$colors[5]=array(0,0,0);
$colors[6]=array(0,0,0);
//Get a random color for each letter.
$color1=rand(0, 6);
$color2=rand(0, 6);
$color3=rand(0, 6);
$color4=rand(0, 6);
$color5=rand(0, 6);
$color6=rand(0, 6);
//Allocate colors for letters.
$bgColor = imagecolorallocate ($image, 255, 255, 255);
$textColor1 = imagecolorallocate ($image, $colors[$color1][0],$colors[$color1][1], $colors[$color1][2]);
$textColor2 = imagecolorallocate ($image, $colors[$color2][0],$colors[$color2][1], $colors[$color2][2]);
$textColor3 = imagecolorallocate ($image, $colors[$color3][0],$colors[$color3][1], $colors[$color3][2]);
$textColor4 = imagecolorallocate ($image, $colors[$color4][0],$colors[$color4][1], $colors[$color4][2]);
$textColor5 = imagecolorallocate ($image, $colors[$color5][0],$colors[$color5][1], $colors[$color5][2]);
$textColor6 = imagecolorallocate ($image, $colors[$color6][0],$colors[$color6][1], $colors[$color6][2]);
//Write text to the image using TrueType fonts.
$size = 15;
imagestring ( $image , rand(5,8) , rand(5,15) , rand(0,17) , $letter1 , $textColor1 );
imagestring ( $image , rand(5,8) , rand(30,40) , rand(0,17) , $letter2 , $textColor2 );
imagestring ( $image , rand(5,8) , rand(55,65) , rand(0,17) , $letter3 , $textColor3 );
imagestring ( $image , rand(5,8) , rand(80,90) , rand(0,17) , $letter4 , $textColor4 );
imagestring ( $image , rand(5,8) , rand(105,115) , rand(0,17) , $letter5 , $textColor5 );
imagestring ( $image , rand(5,8) , rand(130,140) , rand(0,17) , $letter6 , $textColor6 );
header('Content-type: image/jpeg');
//Output image to browser
imagejpeg($image);
//Destroys the image
imagedestroy($image);
我不确定为什么我会对此进行标记。
这不是 stackoverflow 用于
的内容([经过一次自我努力] 提出问题以便从更高技能的人那里得到答案。)
然后你会得到一些在他的意见中认为这是一个愚蠢的问题,并且点击'下调。来吧管理员(降价原因)。
答案 0 :(得分:0)
只需创建数组,php并不关心变量包含的类型。
而不是:
header('Content-type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
只是这样做:
$return = array(
'text' => $rand_str,
'image' => $image
);
return $return;
(假设您发布的代码位于函数内部。如果不了解您如何调用代码,则很难给出明确的答案)
无需将其输出到浏览器。