在php运行时调整图像大小


Resize image at run time php

如何在运行时预览图像?我有上传脚本和重新调整大小的功能。但图像并没有在运行时显示。我不想救艾姆奇。只需调整大小并在运行时显示即可。图像必须从内存中显示,而不是从目录中显示。我正在尝试这样的东西:

    if ($_FILES['myfile']['error'] == 0)
    {  
     $theImageToResize=$_FILES['myfile']['name'];
     $afterResize=Resize($theImageToResize);
     echo $theImageToResize.'---->image after resize';
    }

[只想显示内存中的图像。而不是目录中的图像];

服务器端代码:

  $savefolder = 'images'; //upload dir  
  $max_size = 35000;    //in bytes  
  // image types
  $allowtype = array('bmp', 'gif', 'jpg', 'jpeg', 'gif', 'png');
  $res = '';
  // if is received a valid file
  if (isset ($_FILES['myfile'])) {

 $type = end(explode(".", strtolower($_FILES['myfile']['name'])));
 if (in_array($type, $allowtype)) {
if ($_FILES['myfile']['size']<=$max_size*1000) {
  if ($_FILES['myfile']['error'] == 0) {
    $thefile = $savefolder . "/" . $_FILES['myfile']['name'];
    $theImageToResize=$_FILES['myfile']['name'];

      header('Content-type: image/jpeg');
      $res = '<img src="'.$theImageToResize.'" />';

      }
    }
    else { $res = 'The file <b>'. $_FILES['myfile']['name']. '</b> exceeds max Size           <i>'. $max_size. 'KB</i>'; }
 }
                else { $res = 'The file <b>'. $_FILES['myfile']['name']. '</b> has not an allowed File Tyle..'; }
           }

          $res = urlencode($res);
         echo '<body onload="parent.doneloading('''.$res.''')"></body>';

如果您手头有包含图像的二进制数据,您可以使用数据URI来回显嵌入图像的<img>标签,如下所示:

$imageData = /* binary image data */
$mimeType = 'image/jpg'; // or image/gif or image/png, must be accurate
printf('<img src="data:%s;base64,%s" alt="resized image" />',
        $mimeType, base64_encode($imageData));

这允许您将调整大小的图像作为网页的一部分输出。如果你想只显示图像,你可以简单地输出一个合适的标题,然后回显二进制数据:

header('Content-type: image/jpg');
echo $imageData;
die;
$_FILES['myfile']['name']

包含文件名,而不是位置,请使用

$_FILES['myfile']['tmpname'] 

相反。要调整大小,请阅读关于imagecopy的重新采样PHP函数-有很多关于PHP图像调整大小的教程。要输出图像,请使用imagejpeg或imagepng函数-此函数将把您的图像输出到浏览器。不要忘记正确的标题,例如

header('Content-type: image/jpeg');