PEGU Consulting

Webdesign | Hosting | Support | Consulting

Weblog von PEGU Consulting

Samstag, 5. März 2011 / 15:53

Bilderserien mit gleicher Höhe und Breite

Abgelegt unter TypoScript-Schnipsel — von P. Arentzen
Beispielbilder

Hier eine Methode, wie man mit reinem TypoScript eine Serie mit Bildern erzeugen kann, die immer die gleiche Höhe und Breite haben. Dabei werden die Bilder nur beschnitten, wenn es sein muss - und nur so viel, wie es sein muss. Verwendung: z.B. in Slideshows, Gallerien etc.

Die Bilder werden in diesem Beispiel aus dem Resourcen-Feld einer bestimmten Seite ausgelesen.

 


#################################
### lib.specialImages
#################################
lib.specialImages = COA
lib.specialImages {
   10 = LOAD_REGISTER
   10.width = 160
   10.height = 120

   20 = CONTENT
   20 {
      table = pages
      select {
         pidInList = 71
         andWhere = 97
         andWhere.intval = 1
         andWhere.wrap = uid = '|'
      }
      
      renderObj = TEXT
      renderObj {
         field = media
         split {
            token = ,
            
            cObjNum = 10
            10.cObject = COA
            10.cObject {
               10 = LOAD_REGISTER
               
               
               
               
               # fix width
               10.imgRaw1.cObject = IMG_RESOURCE
               10.imgRaw1.cObject {
                  file.import = uploads/media/
                  file.import.current = 1
                  file.width.data = register:width
               }
               10.imgW1.data = TSFE:lastImgResourceInfo|0
               10.imgH1.data = TSFE:lastImgResourceInfo|1
            
               
               # fix height if needed
               10.imgRaw2.data = register:imgRaw1
               10.imgRaw2.override {
               
                  # wrap image rendering by COA because in COA if is evalated before creation of content
                  cObject = COA
                  cObject {
                     
                     10 = IMG_RESOURCE
                     10 {
                        file.import = uploads/media/
                        file.import.current = 1
                        file.height.data = register:height
                     }
                  }
                  cObject.if {   
                     value.data = register:height
                     isLessThan.data = register:imgH1
                  }
               }
               
               10.imgW2.data = TSFE:lastImgResourceInfo|0
               10.imgH2.data = TSFE:lastImgResourceInfo|1
               
               
               # now we an image that has the needed height and the needed width

               # condition whether cropping is needed
               cropif {
                  isPositive.cObject = COA
                  isPositive.cObject {
                     10 = TEXT
                     10.value = 0
                     
                     20 = TEXT
                     20.value = +1
                     20.if {
                        value.data = register:width
                        equals.data = register:imgW2
                        negate = 1
                     }
                  
                     30 = TEXT
                     30.value = +1
                     30.if {
                        value.data = register:height
                        equals.data = register:imgH2
                        negate = 1
                     }
                     
                     stdWrap.prioriCalc = 1
                  }
               }


               # create a small template image for later use in GIFBUILDER (if needed)
               10.imgTempl.cObject = COA
               10.imgTempl.cObject {
                  10 = IMG_RESOURCE
                  10 {
                     file = GIFBUILDER
                     file {
                        XY = 10,10
                        backColor = green
                     }
                  }
            
               }
               10.imgTempl.cObject.if < .cropif
               
               
               # crop image by using GIFBUILDER (if needed)
               10.image.data = register:imgRaw2
               10.image.override.cObject = COA
               10.image.override.cObject {
                  10 = IMG_RESOURCE
                  10 {
                     file = GIFBUILDER
                     file {
                        XY = 2000,2000
                        format = jpg
                        backColor = red
                        
                        
                        10 = IMAGE
                        10 {
                           file {
                              import.data = register:imgTempl
                              width.data = register:width
                              height.data = register:height
                           }
                        }
                        
                        20 = IMAGE
                        20 {
                           file.import.data = register:imgRaw2
                        }
                        
                        30 = CROP
                        30 {
                           crop = [20.w]-[10.w]/2,[20.h]-[10.h]/2,[10.w],[10.h]
                        }
                        
                     
                        
                     }
                  }
               }
               
               10.image.override.cObject.if < .cropif
               
               
               50 = IMAGE
               50.file.import.data = register:image

               60 = TEXT
               60.value =
width: {TSFE:lastImgResourceInfo|0} - height: {TSFE:lastImgResourceInfo|1}

               60.insertData = 1
               
               
               
               
               90 = RESTORE_REGISTER
               
            
            }
            
         }
      }
      
   }
   
   90 = RESTORE_REGISTER
}



Zurück
Seiten
  • Home
  • Impressum
  • Nutzungsbedingungen
  • Datenschutzerklärung
  • Kontakt
  • Webseite
Kategorien
  • Allgemein (65)
  • PEGU intern (25)
  • Computer-News (49)
    • Hardware (8)
    • Software (61)
    • Spiele (34)
    • Internet (39)
    • Diverses (5)
  • Shortcuts (8)
  • Subjektives (72)
  • System (23)
  • Mac-Welten (26)
  • Mobiles Leben (62)
  • TypoScript-Schnipsel (4)
  • Games (19)
  • Linux (32)
  • Satire (4)
  • Im Test (51)
  • Entwicklung (1)
    • Tipps und Tricks (0)
    • JavaScript / Vue Schnipsel (5)
Archiv
  • Mai 2023 (5)
  • Dezember 2022 (1)
  • November 2021 (2)
  • September 2021 (1)
  • August 2021 (2)
  • Juli 2021 (1)
  • Juni 2021 (4)
  • Mai 2021 (9)
  • April 2021 (3)
  • März 2021 (2)
  • Februar 2021 (4)
  • Januar 2021 (5)
  • Dezember 2020 (8)
  • November 2020 (7)
  • September 2020 (1)
  • Juli 2020 (5)
  • Juni 2020 (6)
  • Mai 2020 (8)
  • Dezember 2018 (1)
  • Juli 2018 (1)
  • Mai 2018 (1)
  • April 2018 (1)
  • Februar 2018 (1)
  • Januar 2018 (2)
  • Dezember 2017 (2)
  • November 2017 (3)
  • Oktober 2017 (1)
  • März 2017 (2)
  • Februar 2017 (3)
  • Januar 2017 (2)
  • Dezember 2016 (2)
  • November 2016 (1)
  • Oktober 2016 (1)
  • September 2016 (2)
  • August 2016 (2)
  • Juli 2016 (2)
  • Mai 2016 (3)
  • April 2016 (4)
  • März 2016 (2)
  • Februar 2016 (4)
  • Januar 2016 (5)
  • Dezember 2015 (3)
  • November 2015 (2)
  • Oktober 2015 (1)
  • September 2015 (1)
  • August 2015 (2)
  • Juli 2015 (2)
  • Juni 2015 (2)
  • Mai 2015 (4)
  • April 2015 (11)
  • März 2015 (6)
  • Februar 2015 (2)
  • Januar 2015 (9)
  • Dezember 2014 (7)
  • November 2014 (4)
  • Oktober 2014 (7)
  • September 2014 (9)
  • August 2014 (10)
  • Juli 2014 (2)
  • Mai 2014 (2)
  • April 2014 (15)
  • März 2014 (8)
  • Februar 2014 (12)
  • Januar 2014 (3)
  • Dezember 2013 (3)
  • November 2013 (8)
  • Oktober 2013 (4)
  • September 2013 (7)
  • August 2013 (3)
  • Juli 2013 (6)
  • Juni 2013 (7)
  • Mai 2013 (6)
  • April 2013 (6)
  • März 2013 (13)
  • Februar 2013 (10)
  • Januar 2013 (7)
  • Dezember 2012 (5)
  • November 2012 (5)
  • Oktober 2012 (5)
  • September 2012 (2)
  • August 2012 (5)
  • Juli 2012 (10)
  • Juni 2012 (3)
  • April 2012 (1)
  • März 2012 (3)
  • Februar 2012 (3)
  • Januar 2012 (1)
  • Dezember 2011 (2)
  • November 2011 (2)
  • Oktober 2011 (5)
  • September 2011 (5)
  • August 2011 (4)
  • Juli 2011 (2)
  • Juni 2011 (2)
  • Mai 2011 (7)
  • April 2011 (12)
  • März 2011 (9)
  • Februar 2011 (2)
  • Dezember 2010 (1)
  • September 2010 (3)
  • Juni 2010 (1)
  • Mai 2010 (2)
  • Februar 2010 (3)
  • Januar 2010 (3)
  • Dezember 2009 (5)
  • November 2009 (1)
  • Juli 2009 (1)
  • Mai 2009 (2)
  • April 2009 (1)
  • März 2009 (2)
  • Februar 2009 (3)
  • Dezember 2008 (1)
  • Oktober 2008 (1)
  • August 2008 (1)
  • Juni 2008 (1)
  • Mai 2008 (2)
  • April 2008 (6)
  • März 2008 (3)
  • Februar 2008 (2)
  • Januar 2008 (4)
  • Dezember 2007 (6)
  • November 2007 (1)
  • Oktober 2007 (2)
  • September 2007 (1)
  • August 2007 (3)
  • Juli 2007 (5)
  • Mai 2007 (1)
  • April 2007 (6)
  • März 2007 (5)
  • Februar 2007 (4)
  • Januar 2007 (2)
  • Dezember 2006 (5)
  • November 2006 (2)
  • Oktober 2006 (5)
  • September 2006 (13)
  • März 2004 (1)
  • Oktober 2003 (1)
  • April 2003 (1)
  • Februar 2003 (1)
Blogroll
  • PEGU Webseite
  • Schriftsteller G. Arentzen
Feeds
  • RSS 2
© by PEGU Consulting, P. Arentzen — Design & Realisierung by PEGU Consulting — Powered by TYPO3