dongxiaoguang9108 2018-04-24 13:25
浏览 47

在PHP中将图像保存到目录?

Here I'm merging 2 images into single image. It's showing the image successfully imagejpeg($im); but I cannot save the image in specific location.imagejpeg($im,'images/downloadFile.jpg');

Php Code:

<?php
function mergeImages($images) {
    $imageData = array();
    $len = count($images);
    $wc = ceil(sqrt($len));
    $hc = floor(sqrt($len/2));
    $maxW = array();
    $maxH = array();
    for($i = 0; $i < $len; $i++) {
        $imageData[$i] = getimagesize($images[$i]);
        $found = false;
        for($j = 0; $j < $i; $j++) {
            if ( $imageData[$maxW[$j]][0] < $imageData[$i][0] ) {
                $farr = $j > 0 ? array_slice($maxW, $j-1, $i) : array();
                $maxW = array_merge($farr, array($i), array_slice($maxW, $j));
                $found = true;
                break;
            }
        }
        if ( !$found ) {
            $maxW[$i] = $i;
        }
        $found = false;
        for($j = 0; $j < $i; $j++) {
            if ( $imageData[$maxH[$j]][1] < $imageData[$i][1] ) {
                $farr = $j > 0 ? array_slice($maxH, $j-1, $i) : array();
                $maxH = array_merge($farr, array($i), array_slice($maxH, $j));
                $found = true;
                break;
            }
        }
        if ( !$found ) {
            $maxH[$i] = $i;
        }
    }

    $width = 0;
    for($i = 0; $i < $wc; $i++) {
        $width += $imageData[$maxW[$i]][0];
    }

    $height = 0;
    for($i = 0; $i < $hc; $i++) {
        $height += $imageData[$maxH[$i]][1];
    }

    $im = imagecreatetruecolor($width, $height);

    $wCnt = 0;
    $startWFrom = 0;
    $startHFrom = 0;
    for( $i = 0; $i < $len; $i++ ) {
        $tmp = imagecreatefromjpeg($images[$i]);
        imagecopyresampled($im, $tmp, $startWFrom, $startHFrom, 0, 0, $imageData[$i][0], $imageData[$i][1], $imageData[$i][0], $imageData[$i][1]);
        $wCnt++;
        if ( $wCnt == $wc ) {
            $startWFrom = 0;
            $startHFrom += $imageData[$maxH[0]][1];
            $wCnt = 0;
        } else {
            $startWFrom += $imageData[$i][0];
        }
    }

    return $im;
}

$im = mergeImages(array('images/1.jpg', 'images/2.jpg'));

header('Content-type: image/jpg'); 
imagejpeg($im); //View image

imagejpeg($im,'images/downloadFile.jpg'); //Not Saved image

Desired Output

cannot be displayed because it contains errors.

Thanks Advance!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 #MATLAB仿真#车辆换道路径规划
    • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
    • ¥15 数据可视化Python
    • ¥15 要给毕业设计添加扫码登录的功能!!有偿
    • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
    • ¥15 微信公众号自制会员卡没有收款渠道啊
    • ¥100 Jenkins自动化部署—悬赏100元
    • ¥15 关于#python#的问题:求帮写python代码
    • ¥20 MATLAB画图图形出现上下震荡的线条
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘