如何在 PHP 中调整 png 的透明度并使其透明?

发布于 2024-07-08 20:40:03 字数 788 浏览 3 评论 0原文

我正在尝试在 PHP 中调整具有透明背景的 png 的大小,但我在网上找到的代码示例对我不起作用。 这是我正在使用的代码,非常感谢您的建议!

$this->image = imagecreatefrompng($filename);

imagesavealpha($this->image, true);
$newImage = imagecreatetruecolor($width, $height);

// Make a new transparent image and turn off alpha blending to keep the alpha channel
$background = imagecolorallocatealpha($newImage, 255, 255, 255, 127);
imagecolortransparent($newImage, $background);
imagealphablending($newImage, false);
imagesavealpha($newImage, true);

imagecopyresampled($newImage, $this->image, 0, 0, 0, 0, $width, $height,  $this->getWidth(), $this->getHeight());
$this->image = $newImage;  
imagepng($this->image,$filename);


更新 我所说的“不起作用”是指当我调整 png 大小时背景颜色会变为黑色。

I'm attempting to resize pngs with transparent backgrounds in PHP and the code samples I've found online don't work for me. Here's the code I'm using, advice will be much appreciated!

$this->image = imagecreatefrompng($filename);

imagesavealpha($this->image, true);
$newImage = imagecreatetruecolor($width, $height);

// Make a new transparent image and turn off alpha blending to keep the alpha channel
$background = imagecolorallocatealpha($newImage, 255, 255, 255, 127);
imagecolortransparent($newImage, $background);
imagealphablending($newImage, false);
imagesavealpha($newImage, true);

imagecopyresampled($newImage, $this->image, 0, 0, 0, 0, $width, $height,  $this->getWidth(), $this->getHeight());
$this->image = $newImage;  
imagepng($this->image,$filename);

Update
By 'not working' I meant to say the background color changes to black when I resize pngs.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

静谧幽蓝 2024-07-15 20:40:03

据我所知,您需要在执行 imagecolorallocatealpha 之前将混合模式设置为 false,并将保存 alpha 通道标志设置为 true ()

<?php
/**
 * https://stackoverflow.com/a/279310/470749
 * 
 * @param resource $image
 * @param int $newWidth
 * @param int $newHeight
 * @return resource
 */
public function getImageResized($image, int $newWidth, int $newHeight) {
    $newImg = imagecreatetruecolor($newWidth, $newHeight);
    imagealphablending($newImg, false);
    imagesavealpha($newImg, true);
    $transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127);
    imagefilledrectangle($newImg, 0, 0, $newWidth, $newHeight, $transparent);
    $src_w = imagesx($image);
    $src_h = imagesy($image);
    imagecopyresampled($newImg, $image, 0, 0, 0, 0, $newWidth, $newHeight, $src_w, $src_h);
    return $newImg;
}
?>

更新:此代码仅适用于不透明度 = 0 的透明背景。如果您的图像有 0 < 不透明度< 100 它将是黑色背景。

From what I can tell, you need to set the blending mode to false, and the save alpha channel flag to true before you do the imagecolorallocatealpha()

<?php
/**
 * https://stackoverflow.com/a/279310/470749
 * 
 * @param resource $image
 * @param int $newWidth
 * @param int $newHeight
 * @return resource
 */
public function getImageResized($image, int $newWidth, int $newHeight) {
    $newImg = imagecreatetruecolor($newWidth, $newHeight);
    imagealphablending($newImg, false);
    imagesavealpha($newImg, true);
    $transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127);
    imagefilledrectangle($newImg, 0, 0, $newWidth, $newHeight, $transparent);
    $src_w = imagesx($image);
    $src_h = imagesy($image);
    imagecopyresampled($newImg, $image, 0, 0, 0, 0, $newWidth, $newHeight, $src_w, $src_h);
    return $newImg;
}
?>

UPDATE : This code is working only on background transparent with opacity = 0. If your image have 0 < opacity < 100 it'll be black background.

暮年慕年 2024-07-15 20:40:03

这是对我来说效果很好的最终解决方案。

function resizePng($im, $dst_width, $dst_height) {
    $width = imagesx($im);
    $height = imagesy($im);

    $newImg = imagecreatetruecolor($dst_width, $dst_height);

    imagealphablending($newImg, false);
    imagesavealpha($newImg, true);
    $transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127);
    imagefilledrectangle($newImg, 0, 0, $width, $height, $transparent);
    imagecopyresampled($newImg, $im, 0, 0, 0, 0, $dst_width, $dst_height, $width, $height);

    return $newImg;
}

Here is a final solution that is working fine for me.

function resizePng($im, $dst_width, $dst_height) {
    $width = imagesx($im);
    $height = imagesy($im);

    $newImg = imagecreatetruecolor($dst_width, $dst_height);

    imagealphablending($newImg, false);
    imagesavealpha($newImg, true);
    $transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127);
    imagefilledrectangle($newImg, 0, 0, $width, $height, $transparent);
    imagecopyresampled($newImg, $im, 0, 0, 0, 0, $dst_width, $dst_height, $width, $height);

    return $newImg;
}
有木有妳兜一样 2024-07-15 20:40:03

与 imagecopyresampled 相比,使用 imagescale 更好。 调整大小的图像不需要空图像资源,与 imagecopyresampled 所需的十个参数相比,仅需要两个参数。 还可以以更小的尺寸生产更好的质量。 如果使用 PHP 5.5.18 或更早版本,或者 PHP 5.6.2 或更早版本,您应该提供第三个参数的高度,因为长宽比计算不正确。

$this->image =   imagecreatefrompng($filename);
$scaled = imagescale($this->image, $width);
imagealphablending($scaled, false);
imagesavealpha($scaled, true);
imagepng($scaled, $filename);

using imagescale is better compared to imagecopyresampled. No empty image resource required for the resized image, requires only two arguments compared to the ten required by imagecopyresampled. Also produces better quality with smaller sizes. If using PHP 5.5.18 or earlier, or PHP 5.6.2 or earlier, you should provide the height which is the 3rd argument as the aspect ratio calculation was incorrect.

$this->image =   imagecreatefrompng($filename);
$scaled = imagescale($this->image, $width);
imagealphablending($scaled, false);
imagesavealpha($scaled, true);
imagepng($scaled, $filename);
撩发小公举 2024-07-15 20:40:03

还需要用透明颜色填充新图像(如 Dycey 编码,但我猜忘记提及:)),而不仅仅是“战略”保存本身。

IIRC,您还需要确保 PNG 是 24 位,即真彩色,而不是 8 位,以避免错误行为。

The filling of the new image with a transparent colour is also required (as Dycey coded but I'm guessing forgot to mention :)), not just the 'strategic' saving by itself.

IIRC, you also need to be sure PNGs are 24bit, ie truecolor, and not 8bit to avoid buggy behaviour.

白昼 2024-07-15 20:40:03

旧线程,但以防万一 - 如果您正确命名,戴西的示例应该可以工作。 这是我的图像调整大小类中使用的修改版本。 请注意检查以确保 imagecolorallocatealpha() 已定义,如果您使用 GD <2.0.8,则不会定义该检查

  /**
     * usually when people use PNGs, it's because they need alpha channel 
     * support (that means transparency kids). So here we jump through some 
     * hoops to create a big transparent rectangle which the resampled image 
     * will be copied on top of. This will prevent GD from using its default 
     * background, which is black, and almost never correct. Why GD doesn't do 
     * this automatically, is a good question.
     *
     * @param $w int width of target image
     * @param $h int height of target image
     * @return void
     * @private
     */
    function _preallocate_transparency($w, $h) {
        if (!empty($this->filetype) && !empty($this->new_img) && $this->filetype == 'image/png')) {
            if (function_exists('imagecolorallocatealpha')) {
                imagealphablending($this->new_img, false);
                imagesavealpha($this->new_img, true);
                $transparent = imagecolorallocatealpha($this->new_img, 255, 255, 255, 127);
                imagefilledrectangle($this->new_img, 0, 0, $tw, $th, $transparent);
            }
        }
    }

old thread, but just in case - Dycey's example should work, if you name things correctly. Here is a modified version used in my image resizing class. Notice the check to make sure imagecolorallocatealpha() is defined, which it won't be if you are using GD <2.0.8

  /**
     * usually when people use PNGs, it's because they need alpha channel 
     * support (that means transparency kids). So here we jump through some 
     * hoops to create a big transparent rectangle which the resampled image 
     * will be copied on top of. This will prevent GD from using its default 
     * background, which is black, and almost never correct. Why GD doesn't do 
     * this automatically, is a good question.
     *
     * @param $w int width of target image
     * @param $h int height of target image
     * @return void
     * @private
     */
    function _preallocate_transparency($w, $h) {
        if (!empty($this->filetype) && !empty($this->new_img) && $this->filetype == 'image/png')) {
            if (function_exists('imagecolorallocatealpha')) {
                imagealphablending($this->new_img, false);
                imagesavealpha($this->new_img, true);
                $transparent = imagecolorallocatealpha($this->new_img, 255, 255, 255, 127);
                imagefilledrectangle($this->new_img, 0, 0, $tw, $th, $transparent);
            }
        }
    }
顾挽 2024-07-15 20:40:03

它可能与较新版本的 PHP 有关(我使用 PHP 5.6 进行了测试),但现在不需要用透明背景填充图像:

$image_p = imagecreatetruecolor(480, 270);
imageAlphaBlending($image_p, false);
imageSaveAlpha($image_p, true);
$image = imagecreatefrompng('image_with_some_transaprency.png');
imagecopyresampled($image_p, $image, 0, 0, 0, 0, 480, 270, 1920, 1080);
imagepng($image_p, 'resized.png', 0);

It's probably related to the newer versions of PHP (I tested with PHP 5.6) but this now works without the need to fill the image with a transparent background:

$image_p = imagecreatetruecolor(480, 270);
imageAlphaBlending($image_p, false);
imageSaveAlpha($image_p, true);
$image = imagecreatefrompng('image_with_some_transaprency.png');
imagecopyresampled($image_p, $image, 0, 0, 0, 0, 480, 270, 1920, 1080);
imagepng($image_p, 'resized.png', 0);
儭儭莪哋寶赑 2024-07-15 20:40:03

这对我来说也不起作用:(
这是我的解决方案..但我也得到黑色背景并且图像不透明

    <?php
$img_id = 153;

$source = "images/".$img_id.".png";
$source = imagecreatefrompng($source);
$o_w = imagesx($source);
$o_h = imagesy($source);

$w = 200;
$h = 200;

$newImg = imagecreatetruecolor($w, $h);
imagealphablending($newImg, false);
imagesavealpha($newImg,true);
$transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127);
imagefilledrectangle($newImg, 0, 0, $w, $h, $transparent);
imagecopyresampled($newImg, $source, 0, 0, 0, 0, $w, $h, $o_w, $o_h);

imagepng($newImg, $img_id.".png");

?>
<img src="<?php echo $img_id.".png" ?>" />

this is also not working for me :(
thisis my solution.. but i also get a black background and the image is not transparent

    <?php
$img_id = 153;

$source = "images/".$img_id.".png";
$source = imagecreatefrompng($source);
$o_w = imagesx($source);
$o_h = imagesy($source);

$w = 200;
$h = 200;

$newImg = imagecreatetruecolor($w, $h);
imagealphablending($newImg, false);
imagesavealpha($newImg,true);
$transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127);
imagefilledrectangle($newImg, 0, 0, $w, $h, $transparent);
imagecopyresampled($newImg, $source, 0, 0, 0, 0, $w, $h, $o_w, $o_h);

imagepng($newImg, $img_id.".png");

?>
<img src="<?php echo $img_id.".png" ?>" />
昵称有卵用 2024-07-15 20:40:03

这是适用于 png 文件并保留其图像透明度的完整代码。

list($width, $height) = getimagesize($filepath);
$new_width = "300";
$new_height = "100";

if($width>$new_width && $height>$new_height)
{
    $image_p = imagecreatetruecolor($new_width, $new_height);
    imagealphablending($image_p, false);
    imagesavealpha($image_p, true);
    $image = imagecreatefrompng($filepath);
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    imagepng($image_p,$filepath,5);
}

Here is full code working for png files with preserving their images transparency..

list($width, $height) = getimagesize($filepath);
$new_width = "300";
$new_height = "100";

if($width>$new_width && $height>$new_height)
{
    $image_p = imagecreatetruecolor($new_width, $new_height);
    imagealphablending($image_p, false);
    imagesavealpha($image_p, true);
    $image = imagecreatefrompng($filepath);
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    imagepng($image_p,$filepath,5);
}
三月梨花 2024-07-15 20:40:03

您可以简单地使用 imagescale() 调整图像大小

这段代码对我来说效果很好:

$image = imagescale($image, 720, -1, IMG_BICUBIC);
imagepng($image);

You can simply resize the image with imagescale()

This code works fine for me:

$image = imagescale($image, 720, -1, IMG_BICUBIC);
imagepng($image);
小矜持 2024-07-15 20:40:03

完整的例子。 请注意,对于在互联网上找到的一些 png 图像,它工作不正确,但对于我自己用 Photoshop 创建的图像,它工作正常。

    header('Content-Type: image/png');

$filename = "url to some image";

$newWidth = 300;
$newHeight = 300;

$imageInfo = getimagesize($filename);

$image = imagecreatefrompng($filename); //create source image resource
imagesavealpha($image, true); //saving transparency

$newImg = imagecreatetruecolor($newWidth, $newHeight); //creating conteiner for new image
imagealphablending($newImg, false);
imagesavealpha($newImg,true);
$transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127); //seting transparent background
imagefilledrectangle($newImg, 0, 0, $newWidth, $newHeight, $transparent);
imagecopyresampled($newImg, $image, 0, 0, 0, 0, $newWidth, $newHeight,  $imageInfo[0], $imageInfo[1]);

imagepng($newImg); //printout image string

Full example. Notice that for some png images found on internet it works incorrect, but for my own created with photoshop it works fine.

    header('Content-Type: image/png');

$filename = "url to some image";

$newWidth = 300;
$newHeight = 300;

$imageInfo = getimagesize($filename);

$image = imagecreatefrompng($filename); //create source image resource
imagesavealpha($image, true); //saving transparency

$newImg = imagecreatetruecolor($newWidth, $newHeight); //creating conteiner for new image
imagealphablending($newImg, false);
imagesavealpha($newImg,true);
$transparent = imagecolorallocatealpha($newImg, 255, 255, 255, 127); //seting transparent background
imagefilledrectangle($newImg, 0, 0, $newWidth, $newHeight, $transparent);
imagecopyresampled($newImg, $image, 0, 0, 0, 0, $newWidth, $newHeight,  $imageInfo[0], $imageInfo[1]);

imagepng($newImg); //printout image string
两仪 2024-07-15 20:40:03

上述解决方案也不适合我。 这就是我发现解决问题的方法。

// upload directory
$upload_dir = "../uploads/";
// valid image formats
$valid_formats = array("jpg", "jpeg", "png");
// maximum image size 1 mb
$max_size = 1048576;
// crop image width, height
$nw = $nh = 800;
$nw1 = $nh1 = 400;
$nw3 = $nh3 = 200;
$nw2 = $nh2 = 100;
// checks that if upload_dir a directory/not
if (is_dir($upload_dir) && is_writeable($upload_dir)) {
    // not empty file
    if (!empty($_FILES['image'])) {
        // assign file name 
        $name = $_FILES['image']['name'];
        // $_FILES to execute all files within a loop
        if ($_FILES['image']['error'] == 4) {
            $message = "Empty FIle";
        }
        if ($_FILES['image']['error'] == 0) {
            if ($_FILES['image']['size'] > $max_size) {
                echo "E-Image is too large!<br>";
                $_SESSION['alert'] = "Image is too large!!";
            } else if (!in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats)) {
                $_SESSION['alert'] = "This image is not a valid image format!!";
                echo "E-This image is not a valid image format<br>";
            } else if (file_exists($upload_dir . $name)) {
                $_SESSION['alert'] = "Image already exists!!";
                echo "E-Image already exists<br>";
            } else { // No error found! Move uploaded files 
                $size = getimagesize($_FILES['image']['tmp_name']);
                $x = (int) $_POST['x'];
                $y = (int) $_POST['y'];
                $w = (int) $_POST['w'] ? $_POST['w'] : $size[0];
                $h = (int) $_POST['h'] ? $_POST['h'] : $size[1];
                // path for big image
                $big_image_path = $upload_dir . "big/" . $name;
                // medium image path
                $medium_image_path = $upload_dir . "medium/" . $name;
                // small image path
                $small_image_path = $upload_dir . "small/" . $name;
                // check permission
                if (!is_dir($upload_dir . "big/") && !is_writeable($upload_dir . "big/")) {
                    mkdir($upload_dir . "big/", 0777, false);
                }
                if (!is_dir($upload_dir . "medium/") && !is_writeable($upload_dir . "medium/")) {
                    mkdir($upload_dir . "medium/", 0777, false);
                }
                if (!is_dir($upload_dir . "small/") && !is_writeable($upload_dir . "small/")) {
                    mkdir($upload_dir . "small/", 0777, false);
                }
                // image raw data from form
                $data = file_get_contents($_FILES["image"]["tmp_name"]);
                // create image
                $vImg = imagecreatefromstring($data);
                //create big image
                $dstImg = imagecreatetruecolor($nw, $nh);
                imagealphablending($dstImg, false);
                $trans_colour = imagecolorallocatealpha($dstImg, 0, 0, 0, 127);
                imagefilledrectangle($dstImg, 0, 0, $w, $h, $trans_colour);
                imagesavealpha($dstImg, true);
                imagecopyresampled($dstImg, $vImg, 0, 0, $x, $y, $nw, $nh, $w, $h);
                imagepng($dstImg, $big_image_path);
                //create medium thumb
                $dstImg1 = imagecreatetruecolor($nw1, $nh1);
                imagealphablending($dstImg1, false);
                $trans_colour1 = imagecolorallocatealpha($dstImg1, 0, 0, 0, 127);
                imagefilledrectangle($dstImg1, 0, 0, $w, $h, $trans_colour1);
                imagesavealpha($dstImg1, true);
                imagecopyresampled($dstImg1, $vImg, 0, 0, $x, $y, $nw1, $nh1, $w, $h);
                imagepng($dstImg1, $medium_image_path);
                // create smallest thumb
                $dstImg2 = imagecreatetruecolor($nw2, $nh2);
                imagealphablending($dstImg2, false);
                $trans_colour2 = imagecolorallocatealpha($dstImg2, 0, 0, 0, 127);
                imagefilledrectangle($dstImg2, 0, 0, $w, $h, $trans_colour2);
                imagesavealpha($dstImg2, true);
                imagecopyresampled($dstImg2, $vImg, 0, 0, $x, $y, $nw2, $nh2, $w, $h);
                imagepng($dstImg2, $small_image_path);
                /*
                 * Database insertion
                 */
                $sql = "INSERT INTO tbl_inksand_product_gallery ("
                        . "Product_Id,Gallery_Image_Big,Gallery_Image_Medium,Gallery_Image_Thumb,"
                        . "Gallery_Status,Created_By,Created_Datetime"
                        . ") VALUES ("
                        . "'{$Product_Id}','{$big_image_path}','{$medium_image_path}','{$small_image_path}',"
                        . "'A','$Created_By','{$time}'"
                        . ")";
                db_query($sql);
                if (db_affected_rows() == 1) {
                    if (imagedestroy($dstImg)) {
                        $_SESSION['success'] = "Image uploaded successfully.";
                        echo "S-Image uploaded successfully<br>";
                    } else {
                        $_SESSION['alert'] = "Image not uploaded!!";
                        echo "S-Image not uploaded";
                    }
                } else {
                    $_SESSION['alert'] = "Error in uploading image!!";
                    echo "E-Error in uploading image!!";
                }
            }
        }
    }
} else {
    mkdir($upload_dir, 0777);
}

Nor the above solution worked for me. This is the way what i found out to solve the issue.

// upload directory
$upload_dir = "../uploads/";
// valid image formats
$valid_formats = array("jpg", "jpeg", "png");
// maximum image size 1 mb
$max_size = 1048576;
// crop image width, height
$nw = $nh = 800;
$nw1 = $nh1 = 400;
$nw3 = $nh3 = 200;
$nw2 = $nh2 = 100;
// checks that if upload_dir a directory/not
if (is_dir($upload_dir) && is_writeable($upload_dir)) {
    // not empty file
    if (!empty($_FILES['image'])) {
        // assign file name 
        $name = $_FILES['image']['name'];
        // $_FILES to execute all files within a loop
        if ($_FILES['image']['error'] == 4) {
            $message = "Empty FIle";
        }
        if ($_FILES['image']['error'] == 0) {
            if ($_FILES['image']['size'] > $max_size) {
                echo "E-Image is too large!<br>";
                $_SESSION['alert'] = "Image is too large!!";
            } else if (!in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats)) {
                $_SESSION['alert'] = "This image is not a valid image format!!";
                echo "E-This image is not a valid image format<br>";
            } else if (file_exists($upload_dir . $name)) {
                $_SESSION['alert'] = "Image already exists!!";
                echo "E-Image already exists<br>";
            } else { // No error found! Move uploaded files 
                $size = getimagesize($_FILES['image']['tmp_name']);
                $x = (int) $_POST['x'];
                $y = (int) $_POST['y'];
                $w = (int) $_POST['w'] ? $_POST['w'] : $size[0];
                $h = (int) $_POST['h'] ? $_POST['h'] : $size[1];
                // path for big image
                $big_image_path = $upload_dir . "big/" . $name;
                // medium image path
                $medium_image_path = $upload_dir . "medium/" . $name;
                // small image path
                $small_image_path = $upload_dir . "small/" . $name;
                // check permission
                if (!is_dir($upload_dir . "big/") && !is_writeable($upload_dir . "big/")) {
                    mkdir($upload_dir . "big/", 0777, false);
                }
                if (!is_dir($upload_dir . "medium/") && !is_writeable($upload_dir . "medium/")) {
                    mkdir($upload_dir . "medium/", 0777, false);
                }
                if (!is_dir($upload_dir . "small/") && !is_writeable($upload_dir . "small/")) {
                    mkdir($upload_dir . "small/", 0777, false);
                }
                // image raw data from form
                $data = file_get_contents($_FILES["image"]["tmp_name"]);
                // create image
                $vImg = imagecreatefromstring($data);
                //create big image
                $dstImg = imagecreatetruecolor($nw, $nh);
                imagealphablending($dstImg, false);
                $trans_colour = imagecolorallocatealpha($dstImg, 0, 0, 0, 127);
                imagefilledrectangle($dstImg, 0, 0, $w, $h, $trans_colour);
                imagesavealpha($dstImg, true);
                imagecopyresampled($dstImg, $vImg, 0, 0, $x, $y, $nw, $nh, $w, $h);
                imagepng($dstImg, $big_image_path);
                //create medium thumb
                $dstImg1 = imagecreatetruecolor($nw1, $nh1);
                imagealphablending($dstImg1, false);
                $trans_colour1 = imagecolorallocatealpha($dstImg1, 0, 0, 0, 127);
                imagefilledrectangle($dstImg1, 0, 0, $w, $h, $trans_colour1);
                imagesavealpha($dstImg1, true);
                imagecopyresampled($dstImg1, $vImg, 0, 0, $x, $y, $nw1, $nh1, $w, $h);
                imagepng($dstImg1, $medium_image_path);
                // create smallest thumb
                $dstImg2 = imagecreatetruecolor($nw2, $nh2);
                imagealphablending($dstImg2, false);
                $trans_colour2 = imagecolorallocatealpha($dstImg2, 0, 0, 0, 127);
                imagefilledrectangle($dstImg2, 0, 0, $w, $h, $trans_colour2);
                imagesavealpha($dstImg2, true);
                imagecopyresampled($dstImg2, $vImg, 0, 0, $x, $y, $nw2, $nh2, $w, $h);
                imagepng($dstImg2, $small_image_path);
                /*
                 * Database insertion
                 */
                $sql = "INSERT INTO tbl_inksand_product_gallery ("
                        . "Product_Id,Gallery_Image_Big,Gallery_Image_Medium,Gallery_Image_Thumb,"
                        . "Gallery_Status,Created_By,Created_Datetime"
                        . ") VALUES ("
                        . "'{$Product_Id}','{$big_image_path}','{$medium_image_path}','{$small_image_path}',"
                        . "'A','$Created_By','{$time}'"
                        . ")";
                db_query($sql);
                if (db_affected_rows() == 1) {
                    if (imagedestroy($dstImg)) {
                        $_SESSION['success'] = "Image uploaded successfully.";
                        echo "S-Image uploaded successfully<br>";
                    } else {
                        $_SESSION['alert'] = "Image not uploaded!!";
                        echo "S-Image not uploaded";
                    }
                } else {
                    $_SESSION['alert'] = "Error in uploading image!!";
                    echo "E-Error in uploading image!!";
                }
            }
        }
    }
} else {
    mkdir($upload_dir, 0777);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文