2013-12-10 4 views
0

Это мой PHP класс для слияния с изображениямиPHP GD библиотека не может объединить в изображение с помощью функции

mergepic.php

class mergepic{ 
    public function merge_barchart_drawing($object,$obj) 
    { 
    $src = imagecreatefrompng($obj->barchart()); 
     $dest = imagecreatefrompng($object->drawing()); 
     //$src = imagecreatefrompng('http://localhost/graph/barchart.php?barchart='.$_GET['barchart'].'&max='.$_GET['max'].'&digit='.$_GET['digit']); 
     //$dest = imagecreatefrompng('http://localhost/graph/drawing.php?drawings='.$_GET['drawings'].'&max='.$_GET['max'].'&digit='.$_GET['digit']); 
     imagealphablending($dest, false); 
     imagesavealpha($dest, true); 
     imagecopymerge($dest, $src, 10, 9, 0, 9, 700, 500, 100); //have to play with these numbers for it to work for you, etc. 
     header('Content-Type: image/png'); 
     imagepng($dest); 
     imagedestroy($dest); 
     imagedestroy($src); 
    } 
} 

creating_obj, PHP

<? 
include('drawing.php'); 
include('barchart.php'); 
include('mergepic_class.php'); 
$draw = new drawgraph(); 
$barchart = new barchart_graph(); 
$merge_draw = new mergepic(); 
$merge_draw_bar = $merge_draw->merge_barchart_drawing($draw,$barchart); 
?> 

Если я бегу createing_obj .php Я получаю только один файл изображения, не объединяя два изображения. Вместо класса, если я использую url внутри imagecreatefrompng(), он работает нормально.

Любая идея, пожалуйста?

+0

, так как функция двух классов вы вызываете $ obj-> barchart(), а $ object-> drawing() недоступны в классе mergepic. –

+0

@SyedQarib в файле create_obj.php. Я пропустил созданный два объекта с именем $ draw и $ barchart. этот два объекта, которые я передал в merge_barchart_drawing ($ draw, $ barchart), и я получаю его как $ object и $ obj в файле mergepic.php, это правильный путь – Serma

+0

@SyedQarib Я нашел проблему, не знаю, как исправить может у, пожалуйста, помогите мне , Prb - строка $ src = imagecreatefrompng ($ obj-> barchart()); эта строка генерирует изображение штрих-кода и отображает его, и программа после этого не выполняется. но вместо объекта с funtion, если я использую url, он работает нормально. – Serma

ответ

1
function barchart(){ 
    return $canvas; 
} 

ИЛИ (Если вы хотите сохранить этот слой изображения на диск):

function barchart(){ 
    $path = {path where to save file}; 
    $filename = {filename to save and extension}; 

    imagepng($canvas,$path.$filename); 

    return $path.$filename; 
} 

сделать это же для другой (рисунок) класс тоже ..

+0

Спасибо, что это работает – Serma