[TYPO3-english] Get image data without actually showing the image

jochem nabuurs jochem at roquin.nl
Wed Mar 17 10:23:30 CET 2010


jochem nabuurs wrote:
> Hi list,
> 
> I've created the following code for generating an image with a mask onto 
> it, to use as a background for a website.
> 
> // Fetch one random image from border column,
> // apply a mask onto it, and use the url in the body tag
> //
> // In order for the code below to work, you need to set the following 
>      // settings inside local_conf.php or change them through the 
> installtool
> // $TYPO3_CONF_VARS['GFX']['gdlib_png'] = '1';
> // $TYPO3_CONF_VARS['GFX']['gdlib_2'] = '1';
> // $TYPO3_CONF_VARS['GFX']['png_truecolor'] = '1';
> // ---------------------------------------------------------------------
> 
> temp.headerImage = CONTENT
> temp.headerImage {
>     
>     // Fetch a random image from the database
>     table= tt_content
>     select {
>         pidInList = 2
>         max = 1
>         where = CType='image'
>         andWhere (
>             colPos=3 AND
>             image!=''
>         )
>         orderBy = rand()
>     }
>     
>     // Generate a new image from the old one,
>     // with a nice green gradient on top of it.
>     renderObj = COA
>     renderObj {
>     
>         // generate the image
>         10 = IMAGE
>         10 {
>             params = style="display:none;"
>        
>             file = GIFBUILDER
>             file {
>                 XY = 1000, 750
>                 format = jpg
>                 quality = 100
>        
>        
>                 // get the original image
>                 10 = IMAGE
>                 10 {
>                     file {
>                         import = uploads/pics/
>                         import.field = image
>                         width = 1000
>                         height = 750
>                     }
>                        offset = 0,0
>                 }
>     
>            
>                 15 = IMAGE
>                 15 {
>                     offset = 0,0
>                     file = fileadmin/images/foto.png
>                     file {
>                         width = 1000
>                         height = 750
>                     }
>                 }
>             }
>         }
>        
>         // Create the bodytag contents
>         // With the TSFE:lastImageInfo object,
>         // you've got access to the image data
>         // Don't know exactly how this works.
>         20 = TEXT
>         20.dataWrap = <body id="home" style="background-image: 
> url({TSFE:lastImageInfo|3});">
>         20.insertData = 1
>     }
> }
> 
> 
> page.234 < temp.headerImage
> 
> page.bodyTagCObject = TEXT
> page.bodyTagCObject < temp.headerImage.20
> 
> 
> The above works perfect, but the "page.234" part outputs an image tag in 
> the HTML code, which is not what i want. I've partially solved this with 
> setting params = style="display:none;"  so the image isn't displayed.
> 
> I'd like to remove the "page.234 < .." part but then the image object 
> isn't available (or something like that) and with it, the lastImageInfo 
> data.
> 
> What I'd like to know is how to access the lastImageInfo object of the 
> generated image, without having to output the actual image as a HTML 
> element.
> 
> Thanks in advance,
> 
> Jochem Nabuurs
> 
> 

I've got an addition to the above:
Within the CONTENT object, I use RAND() for selecting a random image.
But when I view the result in the website, the image is only shown at 
random when refreshing with crtl + f5.

I thought this was because the image is cached, so I modified the the 
code so the headerImage should not be cached:

page.bodyTagCObject = COA_INT
page.bodyTagCObject.10 < temp.headerImage.20

I've also changed renderObj to a COA_INT but these changes haven't got 
any effect.

Can anybody tell me why the random function is not working?

Thanks in advance


More information about the TYPO3-english mailing list