1

假设用户上传了一个 .txt 或 .php 文件,我想为其生成一个 .png 缩略图。有没有一种简单的方法,不需要我打开文件并将其内容写入新的.png?我有可用的 ImageMagick 和 FFmpeg,一定有办法利用它,但我一直在寻找,但还没有运气。

提前致谢。

4

4 回答 4

3

您可以使用ffmpeg

 ffmpeg -video_size 640x480 -chars_per_frame 60000 -i in.txt -frames:v 1 out.png

在此处输入图像描述

但是,它有一些警告:

  • 默认情况下,它每帧渲染 6000 个字符,因此它可能不会绘制所有文本。-chars_per_frame您可以使用和/或-framerate输入选项更改此设置。默认帧速率为 25。

  • 文本不会自动换行,因此您必须为文本添加换行符以适合您的输出视频大小。

于 2017-08-31T17:04:20.010 回答
2

你总是可以使用 php 的imagettftext函数。

它会给你一个文本文件中的内容的表示。

http://php.net/manual/en/function.imagettftext.php

于 2013-04-02T19:58:43.587 回答
1
$image = new Imagick();
$image->readImage("text:" . $filename . "[0]");
$image->resizeImage($width, $height, Imagick::FILTER_LANCZOS, 1);
$image->setImageFormat('png');
$image->writeImage($linkImage);
于 2019-02-17T22:10:02.770 回答
1

您可以使用 PHP 的类imagick将文件转换为图像。它适用于 txt 文件。

try
{
   $im = new imagick("inputfile.txt[0]");
   if ($im)
   {
      $im->setImageAlphaChannel(imagick::ALPHACHANNEL_DEACTIVATE);
      $im->setImageFormat('jpg');
      $im->setImageCompressionQuality(85);
      file_put_contents("outfile.jpg",$im->getImageBlob());
   }
} catch(Exception $e)
{
    echo "cannot process";
}

// When imagick is unable to read the file, it may wrongly
// set internal server error 500 status code.
// I do not understand why that happens, because the script
// continues normally. Anyway, lets overwrite it here for all cases.
header("HTTP/1.1 200 OK");
于 2016-08-06T09:29:35.670 回答