mar*_*rio 85
那你就是需要的imagepng()
.实际上它几乎变成了一个单行:
imagepng(imagecreatefromstring(file_get_contents($filename)), "output.png");
Run Code Online (Sandbox Code Playgroud)
您可以使用$_FILES["id"]["tmp_name"]
文件名,显然可以使用不同的输出文件名.但探测图像格式本身会变得多余.
Cyc*_*ode 11
根据它是什么类型的图像,您可以选择正确的功能来打开文件:
$extension = strtolower(pathinfo($filename, PATHINFO_EXTENSION));
switch ($extension) {
case 'jpg':
case 'jpeg':
$image = imagecreatefromjpeg($filename);
break;
case 'gif':
$image = imagecreatefromgif($filename);
break;
case 'png':
$image = imagecreatefrompng($filename);
break;
}
Run Code Online (Sandbox Code Playgroud)
然后你只需使用以下方法保存文件:
imagepng($image, $new_filename, $quality);
Run Code Online (Sandbox Code Playgroud)
<form method="post" enctype="multipart/form-data">
<input type="file" name="image" />
<input type="submit" name="submit" value="Submit" />
</form>
<?php
if(isset($_POST['submit']))
{
if(exif_imagetype($_FILES['image']['tmp_name']) == IMAGETYPE_GIF)
{
$newpng = 'image.png';
$png = imagepng(imagecreatefromgif($_FILES['image']['tmp_name']), $newpng);
}
elseif(exif_imagetype($_FILES['image']['tmp_name']) == IMAGETYPE_JPEG)
{
$newpng = 'image.png';
$png = imagepng(imagecreatefromjpeg($_FILES['image']['tmp_name']), $newpng);
}
else //already png
{
$newpng = 'image.png';
}
}
?>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
69020 次 |
最近记录: |