当前位置: 代码迷 >> PHP >> 有过SAE开发的过来见见
  详细解决方案

有过SAE开发的过来见见

热度:37   发布时间:2016-04-28 17:20:49.0
有过SAE开发的过来看看
本帖最后由 lzgctgc 于 2014-12-09 09:41:03 编辑
我用QRCode写的一个二维码生成,加logo本地生成是成功的。当在SAE上二维码生成成功,后面加logo却不行,难道SAE上不支持:imagecopyresampled函数。

function Build_SAEQrcode($filename = '', $text='', $size='8', $logo = false){
$return = false;
$level='H';
$padding=1;
$path =  'saestor://uploads/direwm/';
    $QR = $path.$filename.".png";
    vendor("phpqrcode.qrlib");
    QRcode::png($text,$QR, $level, $size,$padding);
    if($logo === true){
     $QR = imagecreatefromstring(file_get_contents($QR));
     $logocontext = imagecreatefromstring(file_get_contents('./uploads/logo.png'));
    
    
     $QR_width = imagesx($QR);
     $QR_height = imagesy($QR);
      
     $logo_width = imagesx($logocontext);
     $logo_height = imagesy($logocontext);
      
     $logo_qr_width = $QR_width / 5;
     $scale = $logo_width / $logo_qr_width;
     $logo_qr_height = $logo_height / $scale;
     $from_width = ($QR_width - $logo_qr_width) / 2;
     $return = imagecopyresampled($QR, $logocontext, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
     header("Content-Type:image/png");
     imagepng($QR, $path.$filename.".png");
    }else $return =  true;
    imagedestroy($QR);
    return $return;
}

------解决思路----------------------
以前用过,后来因为他不让我免费使用了,就放弃了

imagepng($QR, $path.$filename.".png");
是肯定不支持的,因为常规的文件系统不可用了。但去掉文件名($path.$filename.".png")是可以的

file_get_contents 是否还有用,没有测试过,不确定
  相关解决方案