当前位置: 首页 > 面试题库 >

如何在PHP中将所有图像转换为JPG格式?

许马鲁
2023-03-14
问题内容

我正在用PHP开发一个网站,该网站允许用户上传图像,然后让他决定图像应如何使用jQuery-
PHP整数选择要作为图片的区域,然后单击“裁剪”按钮将其裁剪并保存。

我面临的问题是并非所有图像类型都适合裁剪和保存,因此我注意到,将图像转换为JPG然后让用户裁剪的简单解决方案是因为这是在其中轻松实现的方法JPG格式。

我该怎么办?

这是解决图像类型问题的最佳解决方案吗?

编辑:

我正在使用此代码来裁剪图像,并且它不是以PNG格式出现,并且仅限于3 ext。

$path_parts = pathinfo("../images/DVDs/".$_POST['logo_file']);
        if ($path_parts['extension'] == "png") {

                $src = imagecreatefrompng("../images/DVDs/".$_POST['logo_file']);

                        $tmp = imagecreatetruecolor(350, 494);
                        imagecopyresampled($tmp, $src, 0,0,$_POST['x'],$_POST['y'],350,494,$_POST['w'],$_POST['h']);
                        imagepng($tmp, "../images/DVDs/$filename".'t_'.$_POST['logo_file'],100);
            } else if ($path_parts['extension'] == "jpg" || $path_parts['extension'] == "jpeg") {

                        $src = imagecreatefromjpeg("../images/DVDs/".$_POST['logo_file']);

                        $tmp = imagecreatetruecolor(350, 494);
                        imagecopyresampled($tmp, $src, 0,0,$_POST['x'],$_POST['y'],350,494,$_POST['w'],$_POST['h']);
                        imagejpeg($tmp, "../images/DVDs/$filename".'t_'.$_POST['logo_file'],100);
                } else if ($path_parts['extension'] == "gif") {

                        $src = imagecreatefromgif("../images/DVDs/".$_POST['logo_file']);

                        $tmp = imagecreatetruecolor(350, 494);
                        imagecopyresampled($tmp, $src, 0,0,$_POST['x'],$_POST['y'],350,494,$_POST['w'],$_POST['h']);
                        imagegif($tmp, "../images/DVDs/$filename".'t_'.$_POST['logo_file'],100);
                    }

我想将图像转换为JPG格式,因为它最容易转换而没有任何问题。


问题答案:

也许它不适用于PNG,因为PNG仅支持0到9的压缩级别。

我也希望根据MIME类型而不是扩展名来修改行为。而且我想您在代码中使用POST用户输入之前就已经检查过了;)

这是我的代码变体:

$path = "../images/DVDs/";

$img = $path . $_POST['logo_file'];

if (($img_info = getimagesize($img)) === FALSE)
  die("Image not found or not an image");


switch ($img_info[2]) {
  case IMAGETYPE_GIF  : $src = imagecreatefromgif($img);  break;
  case IMAGETYPE_JPEG : $src = imagecreatefromjpeg($img); break;
  case IMAGETYPE_PNG  : $src = imagecreatefrompng($img);  break;
  default : die("Unknown filetype");
}

$tmp = imagecreatetruecolor(350, 494);
imagecopyresampled($tmp, $src, 0, 0, intval($_POST['x']), intval($_POST['y']),
                   350, 494, intval($_POST['w']), intval($_POST['h']));


$thumb = $path . pathinfo($img, PATHINFO_FILENAME) . "_thumb";
switch ($img_info[2]) {
  case IMAGETYPE_GIF  : imagegif($tmp,  $thumb . '.gif');      break;
  case IMAGETYPE_JPEG : imagejpeg($tmp, $thumb . '.jpg', 100); break;
  case IMAGETYPE_PNG  : imagepng($tmp,  $thumb . '.png', 9);   break;
  default : die("Unknown filetype");
}

对于您要支持的每种文件类型,只需添加两行代码。



 类似资料:
  • 问题内容: 使用PHP将jpg图像转换为gif,png和bmp格式的可能重复项 我有一个PHP表单,该表单允许图像上传和检查以确保图像有效。 但是,我希望所有格式(PNG,JPG,JPEG和GIF)最终在提交后都是PNG。 我该怎么做呢? 问题答案: 然后,您只需要。实际上,它几乎变成了单线: 您将使用文件名,并且显然使用不同的输出文件名。但是图像格式探测本身将变得多余。

  • 问题内容: 我环顾四周,阅读文档,没有找到任何方法或解决方案,所以我在这里问。是否有可用的软件包可用于使用Python将JPG图像转换为PNG图像? 问题答案: 为此,您始终可以使用Python图像库(PIL)。可能还会有其他包/库,但是我之前曾用过它来在格式之间进行转换。 这适用于Windows下的Python 2.7(适用于Python 2.7的Python Imaging Library 1

  • 问题内容: 如何使用PHP将单个jpg图像转换为3种不同的图像格式gif,png和bmp? 请帮助 问题答案: 首先,使用imagecreatefromjpeg()从文件中创建图像对象。然后,您将该对象转储为不同的格式(例如,使用imagegif()):

  • 问题内容: 我有一台保存TIFF图像的服务器。大多数客户端可以读取和显示TIFF图像,因此没有问题。但是,某些客户端无法处理此格式,但可以处理JPG。我想到了使用PHP的GD库为没有TIFF阅读能力的客户端进行服务器端转换。但是我注意到GD也无法读取TIFF文件。 Imagick无法在Windows中工作,我的想法是创建一个imageFetcher.php,它将获取客户端所需的实际图像作为参数。它

  • 我使用croppiejs在一个表单中裁剪我的图像,然后我将结果图像作为base64存储在一个隐藏的输入中,并将post值传递给PHP,现在我需要一个PHP代码来帮助我将base64裁剪后的图像转换成一个实际的图像并保存在“../images”文件夹中,这怎么可能呢?任何代码都将受到赞赏!

  • 本文向大家介绍Java gif图片转换为jpg格式,包括了Java gif图片转换为jpg格式的使用技巧和注意事项,需要的朋友参考一下 下面通过代码给大家介绍Java gif图片转换为jpg格式,具体代码如下所示: 知识点扩展: 用java将png图片转换成jpg格式的图片 总结 以上所述是小编给大家介绍的Java gif图片转换为jpg格式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编