Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示多个大小的图像_Php_Image_Gd - Fatal编程技术网

Php 显示多个大小的图像

Php 显示多个大小的图像,php,image,gd,Php,Image,Gd,我正在尝试向图像添加一些文本,并使用php中的gd以不同的大小显示它。我知道如何显示一个图像。这是代码 <?php if (!isset($_FILES['image']['tmp_name'])) { } else{ $file=$_FILES['image']['tmp_name']; $img_src = imagecreatefromstring(file_get_contents($file)); $img_dest = imagecreatetruecolor(100, 10

我正在尝试向图像添加一些文本,并使用php中的gd以不同的大小显示它。我知道如何显示一个图像。这是代码

<?php
if (!isset($_FILES['image']['tmp_name'])) {
}

else{
$file=$_FILES['image']['tmp_name'];
$img_src = imagecreatefromstring(file_get_contents($file));
$img_dest = imagecreatetruecolor(100, 100);
$src_width = imagesx($img_src);
$src_height = imagesy($img_src);
imagecopyresized($img_dest, $img_src, 0, 0, 0, 0, 100, 100, $src_width, $src_height);

$text = $_POST['text'];
$font_path = 'arial.TTF';
$black = imagecolorallocate($img_dest, 0, 0, 0);
imagettftext($img_dest, 25, 0, 302, 62, $grey, $font_path, $text);
imagettftext($img_dest, 20, 0, 10, 20, $black, $font_path, $text);
header( "Content-type: image/png" );
imagepng( $img_dest );
imagedestroy( $img_dest );
imagedestroy( $img_src );
}
?>

但是,如何在同一页面、同一图像但大小不同的情况下显示多个图像


请告诉我怎么做。

您需要为自己创建每个图像。像在那里那样修改图像是不可能的,因为您将图像作为对象返回

如果您对Web服务器具有写访问权限,则可以保存生成的其他图像,例如

$src_w = 100;
$src_h = 100;

$img_50perc = imagecreatetruecolor($src_w / 2, $src_h / 2);
imagecopyresized($img_50perc, $img_dest, 0, 0, 0, 0, $src_w/2, $src_h/2, $src_w, $src_h);

$img_25perc = imagecreatetruecolor($src_w / 4, $src_h / 4);
imagecopyresized($img_25perc, $img_dest, 0, 0, 0, 0, $src_w/4, $src_h/4, $src_w, $src_h);
然后您可以保存图像:

imagepng($img_dest, 'dest_folder/myfile_100perc.png');
imagepng($img_50perc, 'dest_folder/myfile_50perc.png');
imagepng($img_25perc, 'dest_folder/myfile_25perc.png');
您可以在创建php页面的过程中创建图像,您可以从这些文件名动态创建img标记

echo '100 Percent of size: <img src="dest_folder/myfile_100perc" />';
echo '50 Percent of size: <img src="dest_folder/myfile_50perc" />';   
echo '25 Percent of size: <img src="dest_folder/myfile_25perc" />'; 
100%: <img src="myImageResizer.php?faktor=1" />
50%:  <img src="myImageResizer.php?faktor=2" />
25%:  <img src="myImageResizer.php?faktor=4" />
$faktor = $_GET['faktor'];
if (!$faktor || !is_numeric($faktor)) $faktor = 1;
$src_w = 100 / $faktor;
$src_h = 100 / $faktor;