我有脚本:
<?php
include('db.php');
session_start();
$session_id = '1'; // User session id
$path = "uploads/";
$valid_formats = array("jpg", "png", "gif", "bmp", "jpeg");
if (isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST") {
$name = $_FILES['photoimg']['name'];
$size = $_FILES['photoimg']['size'];
if (strlen($name)) {
list($txt, $ext) = explode(".", $name);
if (in_array($ext, $valid_formats)) {
if ($size < (1024 * 1024)) { // Image size max 1 MB
$actual_image_name = time() . $session_id . "." . $ext;
$tmp = $_FILES['photoimg']['tmp_name'];
if (move_uploaded_file($tmp, $path . $actual_image_name)) {
mysql_query("UPDATE users SET …Run Code Online (Sandbox Code Playgroud) 我有这个Base64 PNG,我想解码到JPG.如果我转换为PNG它工作正常,使用:
list($type, $data) = explode(';', $data);
list(, $data) = explode(',', $data);
$data = base64_decode($data);
file_put_contents('myDirectory/filename.png', $data);
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试将其保存为JPG,则使用(MyDirectory/filename.jpg)以黑白方式显示.
如何将其转换为JPG?这是我的Base64 PNG的一个例子:
data:image/png;base64,iVBORw0KGgoAAAANSUhE...
Run Code Online (Sandbox Code Playgroud) 我有一个脚本可以将 PNG 文件转换为 JPEG 文件。除了,我不确定它是如何工作的。$outputPngFile 和 $outputJpgFile 有什么用?我可以用 tmp 文件来做到这一点,比如用户上传它时吗?那么,如何访问新文件以将其移动到正确的图像目录?
function pngTojpg($image, $outputPngFile, $outputJpgFile, $quality) {
$image = imagecreatefrompng($image);
//Save the png image
imagepng($image, $outputPngFile);
//Save the jpeg image
imagejpeg($image, $outputJpgFile, $quality);
// Free up memory
imagedestroy($image);
}
Run Code Online (Sandbox Code Playgroud)