[TYPO3-english] alpha background GIFBUILDER TYPO3 problem: Resolved!

Francisco Cifuentes francisco.cifuentes.silva at gmail.com
Fri Aug 7 13:11:44 CEST 2009


Dear comunity:

In our team, Ricardo Mieres (working at e27.com, Berlin), has resolved this
trouble, and how I've promised, we will share the solution. We hope that
this can help in this problem. Our solution is based in this method :

(Thanks again Lukas and Tomas!!)

function getTYPO3Image($image){

    /**
    * @author: z27 at e27.com
    *
    **/
    if(is_file($this->conf['imageTransparency'])){
        $finalImg = @imagecreatefrompng($this->conf['imageTransparency']);
        if($finalImg){
            imagealphablending($finalImg, false);
            imagesavealpha($finalImg, true);

            foreach($this->conf as $keyElement=>$imgElementSetup){
               $elementNameArray=split('_',$keyElement);
               if($elementNameArray[0]=='image' and
$this->conf[$keyElement]=='IMAGE' ){
                   $tempImgSetup=$this->conf[$keyElement.'.'];
                       foreach($tempImgSetup['file.'] as $keyTsObj=>$value){
                           if($value=='TEXT'){

$tempImgSetup['file.'][$keyTsObj.'.']['text']=$image[$elementNameArray[1]];
                           }
                           if($value=='IMAGE'){

$tempImgSetup['file.'][$keyTsObj.'.']['file']='uploads/pics/'.$image[$elementNameArray[1]];
                           }
                       }
                  $impTempStr=$this->cObj->IMAGE($tempImgSetup);
                  $img2InsertInfo=$GLOBALS['TSFE']->lastImageInfo;
                  if(is_file($img2InsertInfo[3])){
                       $tempImg=@imagecreatefromgif($img2InsertInfo[3]);
                       imagealphablending($tempImg, false);
                       imagesavealpha($tempImg, false);
                       imagecopymerge  ( $finalImg  , $tempImg  ,
$this->conf[$keyElement.'.']['posX'] ,
$this->conf[$keyElement.'.']['posY']  , 0 , 0  , $img2InsertInfo[0]  ,
$img2InsertInfo[1] ,100);
                       imagedestroy($tempImg);
                  }
              $temp.=$elementNameArray[1];
              }
        }

$fileName=t3lib_div::shortMD5($image.$temp+$this->conf['imageTransparency'].$image['image']);
        $fileName='typo3temp/GB/'.$fileName.'.png';
        imagepng($finalImg,$fileName);
       }
    }
    return '<img class="layer open"  longdesc=""
id="content_'.$image["uid"].'"  src="'.$fileName.'" />';
}


Best regards,

Francisco.
________________________

Francisco A. Cifuentes Silva
Ingeniero de Proyectos
Instituto de Informática Educativa
Universidad de la Frontera
Temuco, Chile
Tel: +56 45 325277
Fax: +56 45 325263
http://www.iie.ufro.cl



2009/8/4 Lukas Stancik <lukas.stancik at robe.cz>

> Hi Francisco,
>
> IMHO it can not be achieved at all. I mean without changing the core.
> The combine/composite command of ImageMagick is always called with
> "+matte" option (see t3lib/class.stdgraphic.php around line 2549) which
> disables the alpha channel of the output image.
>
> I have tried to set it to "-matte" and "-alpha On" but without any effect
> :(
>
> But trying to run this in console:
> Note: image1.png contains some graphic with transparent background,
> image2.png is fully opaque
>
> composite -compose src-over -matte image2.png image1.png output.png
>
> behaves as intended = the resulting image is a composition of the two
> images with transparent background...
>
> Regards,
>
> Lukas
>
> Francisco Cifuentes napsal(a):
> > I get the combined image, but the background lose the transparency.
> >
> >
> > ________________________
> >
> > Francisco A. Cifuentes Silva
> > Ingeniero de Proyectos
> > Instituto de Inform�tica Educativa
> > Universidad de la Frontera
> > Temuco, Chile
> > Tel: +56 45 325277
> > Fax: +56 45 325263
> > http://www.iie.ufro.cl
> >
> >
> >
> > 2009/8/3 Tomas Mrozek <mail at cascaval.com>
> >
> >> Can you upload somewhere those two images ("background.png" and
> >> "imageToShow.jpg") and the output image that you get?
> >>
> >> Tomas Mrozek
> >> _______________________________________________
> >> TYPO3-english mailing list
> >> TYPO3-english at lists.netfielders.de
> >> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-english
> >>
> _______________________________________________
> TYPO3-english mailing list
> TYPO3-english at lists.netfielders.de
> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-english
>


More information about the TYPO3-english mailing list