SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
Welcome.
Enterprise extensions to
Magnolia's imaging module




Magnolia Conference 2012 – Technical Track
Presented by Richard Unger and Rihard Monovic
Agenda

1   About RISE and LFRZ
2   Introduction to Magnolia’s imaging module
3   Imaging extensions
    a. Captcha module
    b. Imaging-PDF module
    c. Image-metadata module
    d. Image-metadata-writer module

4   Questions?



                                        Presentation Title 3
About RISE and LFRZ
About RISE and LFRZ – Partnership

 RISE
   partner for industry


 LFRZ
   partner for government




                           Enterprise extensions to Magnolia's imaging module 5
About RISE

   Corporation, www.rise-world.com
        TU Spin Off, founded 1987
        TU Vienna, INSO – The Think Tank of RISE, 40 PhDs
   Competences
        More than 300 world-class IT-engineers & architects
        Highly acknowledged R&D-enterprise in Europe
        Top-Developer (e.g. part of the world-wide
         Java-Eclipse provider community, component delivery)
        Specialists in IT-Infrastructure and IT-Integration
        Top-Experts in e.g. IT-Architecture, IT-Strategy,
         IT-Security, Usability, Transport IT, System-Performance
   Locations
        HQ in Schwechat/Airport and Vienna
        offices in several countries
        RISE personell works world-wide




                                    Enterprise extensions to Magnolia's imaging module 6
About RISE - Project examples

   2003 – 2006: ID Card for all Austrians + country-wide IT infrastructure
    8 mio. electronic ID-Cards, 24.000 specially designed components for
    offices, delivered in 24 months
   2005 – 2008: overall health network in Germany, architecture,
    planning and project/program management for the at that time largest IT
    project in Europe (1,8 billion €), design at CeBit 2005, leaded till 2008
   2009 – 2012: country-wide ticketing for railway / public transport
    in Austria, 10 million tickets/year, highly complex interoperability, all
    access channels (clerk counter, pos-automat, internet, travel agent,
    mobile phone)
   2007 – 2008: design and architecture of the government network
    plus the school&health network of Qatar, including NOC (network
    operating center) and SOC (security operating center)
   1993 – today: IT infrastructure, software projects, rollouts, IT architec-
    tures for e.g. MoI, MoH, MoF, MoA, MoS, MoX… in several countries




                                 Enterprise extensions to Magnolia's imaging module 7
About RISE - Clients

   AMS Österreich
   Oesterreichische Kontrollbank AG
   Bank Austria Treasury Merger & Systemupgrades
   Österreichische Universitäten – IT-Gesamtstrategie
   Bundesrechenzentrum – Test- und Multiprojektmanagement
   Bundesverwaltung – ELAK Einführung
   IT-Portfolio – Die Presse
   Dresdner Bank
   Bundesministerium für Gesundheit Berlin
   Justizministerium United Arabic Emirates
   ICT Qatar (gesamtes IKT-Portfolio)
   Usability- und Web-Strategie der indischen Regierung
   Qatar Foundation (Infrastruktur-Planung)
   e-Governement-Strategie Libyen



                              Enterprise extensions to Magnolia's imaging module 8
About LFRZ

 “Land-, forst- & wasserwirtschaftliches
  Rechenzentrum GmbH” – www.lfrz.at
 IT service provider
 located in Vienna
 owned by Austrian „ministry of agriculture“,
  which is also the principal customer
 approx. 30 employees + external consultants
 focus is on GIS, SSO, custom application
  development in Java, data integration, IT
  operations  and CMS


                        Enterprise extensions to Magnolia's imaging module 9
About LFRZ - Clients

 LFRZ’s principal customer, principal website
   www.lebensministerium.at




                      Enterprise extensions to Magnolia's imaging module 10
Magnolia’s imaging module
Magnolia‘s imaging module

 generate images on the fly
  as needed by website designs

 cache generated images
  generate once, serve quickly after first request

 flexible, extensible
  configurable generators, image-ops, chains

 STK integration
  „stk“ generator, variations configured in theme

                     Enterprise extensions to Magnolia's imaging module 12
Magnolia‘s imaging module




               Enterprise extensions to Magnolia's imaging module 13
Imaging extensions
Imaging extensions – Custom modules

 captcha
  captcha image generation

 imaging-pdf
  extension of imaging module for PDFs

 image-metadata
  EXIF, IPTC and XMP metadata import

 image-metadata-writer
  output of image metadata

                    Enterprise extensions to Magnolia's imaging module 15
Captcha module
Captcha module

 Generate captchas via imaging


 Uses open-source java captcha library
  http://jcaptcha.sourceforge.net/


 Integrated into magnolia’s imaging


 Highly configurable




                         Enterprise extensions to Magnolia's imaging module 17
Captcha module – jcaptcha library


 pure java captcha image generation
 flexible configuration – compose different “captcha
  engines”
    WordGenerator, FontGenerator, BackgroundGenerator,
     TextPaster, ImageDeformation
    various different implementations of each
 CaptchaService
    Stores generated captchas for verification
    Control TTL and max stored captchas
    Simple methods to generate or verify a captcha-image


                          Enterprise extensions to Magnolia's imaging module 18
Captcha module – Integration in Magnolia


 Configuration via
  content2bean


 Multiple captcha-engines
  configurable
    different look & feel
    different security requirements


 Many configuration options
  exposed



                             Enterprise extensions to Magnolia's imaging module 19
Captcha module – Integration in Magnolia


 Standard Imaging
  generator
   generator: “captcha”




 Custom ParameterProvider
   URLs of form: /.imaging/captcha/<captchaengine>/<id>
 CaptchaParameterProviderFactory
   parses URLs, no caching (NullCachingStrategy)
 Custom image-op for loading: CaptchaLoader
   generates and returns the image


                           Enterprise extensions to Magnolia's imaging module 20
Captcha module – Usage in template
                              <script>
                              function guidGenerator() {
 generate id                     var S4 = function() {
                                      return (((1+Math.random())*0x10000)|
                              0).toString(16).substring(1);
    any string                   };
                                  return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()
                              +S4());
                              }
                              var SubUUID = guidGenerator();
                              </script>



 include captcha
 include id
 <script>
 document.write('<img src="${contextPath}/.imaging/captcha/default/'+SubUUID+'.png"/>');
 document.write('<input type="hidden" name="captchaid" value="'+SubUUID+'" />');
 </script>
 <input name="captcha" value="" />



 Why use JavaScript?
                                   Enterprise extensions to Magnolia's imaging module 21
Captcha module – Usage in model

   verify captcha
@Override
public String execute() {
    // check captcha
    if (checkCaptcha()){
         // do something…
    }
}

protected boolean checkCaptcha() {
     // get service name from paragraph definition
     captchaServiceName = (String)
     getDefinition().getParameters().get("captchaServiceName");
     if (StringUtils.isEmpty(captchaServiceName))
          return true; // if not set, captcha-check is skipped and we return true
     if (StringUtils.isEmpty(getCaptcha()) || StringUtils.isEmpty(getCaptchaid()))
          return false;
     if (!CaptchaModule.verifyCaptcha(captchaServiceName, getCaptchaid(), getCaptcha()))
          return false;
     return true;
}



                                   Enterprise extensions to Magnolia's imaging module 22
Captcha module – Conclusion

 working well in production


 exemplifies magnolia‘s „openness“ and
  extensibility


 not implemented yet
   full configuration
   audio-captchas




                         Enterprise extensions to Magnolia's imaging module 23
imaging-pdf module
imaging-pdf module

 image variations of PDF documents


 uses open-source PDF library
  http://www.jpedal.org/


 integrated in magnolia’s imaging


 transparent operation




                           Enterprise extensions to Magnolia's imaging module 25
imaging-pdf module - jpedal

 pure java PDF to image conversion


 works with most PDFs


 STK “variations”
    configured in theme
    provide thumbnails
    used by “stk” imaging generator


 variations are cool
    but only support image formats readable by java ImageIO



                           Enterprise extensions to Magnolia's imaging module 26
imaging-pdf – integration in magnolia

 Custom image-op for loading
 Extends standard “FromNodeData” image-op


 Overrides loadSource()
 Checks for PDF
 Defers to superclass if not PDF


 Custom “OutputFormat”
 Changes format to “PNG” if source is PDF


                     Enterprise extensions to Magnolia's imaging module 27
imaging-pdf – integration in magnolia

 Output format is configured for generator
   “stk” generator config is modified
   PDF-enabled variation configured in theme




                        Enterprise extensions to Magnolia's imaging module 28
imaging-pdf – conclusion

 working well in production


 motivation:
    “Publications Database”
    Previews




                          Enterprise extensions to Magnolia's imaging module 29
image-metadata module
image-metadata module – use case

 photographers take pictures, often >100 at one event
 pictures need to be published on website (“Fotoservice”)
 each picture needs:
    title, alt-text (WCAG !)
    description, location
    attribution: copyright, owner, source
 manual metadata input for 100s of pictures not practical
 photographers enter this information in image metadata
    using their normal tools (eg. Adobe Photoshop)
 photographers upload images using ZIP-Upload to DMS




                                Enterprise extensions to Magnolia's imaging module 31
image-metadata module

 imports metadata from image files
 uses apache “sanselan” library – all formats
  supported
 custom “image-upload-wizard”
 also works for ZIP-Upload


 metadata: EXIF, IPTC, XMP


 import metadata to contentNode under image
 mappings to import metadata into properties of
  image node


                       Enterprise extensions to Magnolia's imaging module 32
image-metadata – integration in magnolia


 Apache sanselan library
    open source
    reads image metadata from different formats
 metadata is imported on upload to DMS
    individual upload or ZIP-upload supported
 metadata is imported to contentNodes: EXIF, XMP
  and IPTC
 image-metadata module has configurable mappings
    metadata also set in DMS image properties via mapping




                          Enterprise extensions to Magnolia's imaging module 33
image-metadata – integration in magnolia


 Mapping configuration for XMP and IPTC




                    Enterprise extensions to Magnolia's imaging module 34
image-metadata module – challenges

 DMS content editing dialog is “single step”
 Metadata-import requires 2 steps:
    load image and import metadata
    then display metadata for editing


 Metadata formats very “unclean”
    different tools create various forms of wrong metadata
    in particular, encodings are a huge problem (ÜÖÄß)




                        Enterprise extensions to Magnolia's imaging module 35
image-metadata module – implementation


 DMS tree and edit dialog
   custom, 2-step “DMS editing Wizard Dialog”
   custom trees and tree-config to enable use of dialog


 ZIP Upload
   custom “ZipUploadPage”


 Apache sanselan
   compiled sanselan from source (for newest version)
   modified sanselan to perform “encoding detection”


                       Enterprise extensions to Magnolia's imaging module 36
image-metadata module – conclusion

 works well in production
   some problems due to tools used by photographers
   photographers get training, documentation


 makes large photo libraries manageable for
  editors
   editors are not computer experts


 improves data quality



                       Enterprise extensions to Magnolia's imaging module 37
image-metadata-writer module
image-metadata-writer module

 writes metadata to image files on output
 strips existing metadata


 writes metadata as IPTC
    uses the same configuration objects as image-metadata


 “closes loop” with image-metadata module
    metadata is imported to and edited in magnolia’s DMS
    output images can use edited metadata




                          Enterprise extensions to Magnolia's imaging module 39
image-metadata-writer - implementation

 uses “ImageRO” library
    closed source, commercial
     http://reader.imagero.com/
    not recommended 



 no support for metadata writing (XMP, IPTC) in java
  ImageIO


 very limited support in other libraries (eg. sanselan)
    not working well – ImageRO was the only working solution



 writing image metadata seems to be unsolved in java


                             Enterprise extensions to Magnolia's imaging module 40
image-metadata-writer – integration

 extends core components of imaging module
 duplicates some code, unfortunately 


 custom ImageStreamer
    writes images with metadata if requested
    defaults to normal behaviour (via superclass) if not



 custom CachingImageStreamer
    remembers „content-disposition“ in imaging cache
    normal .imaging links work for embedded images
    for our purpose we needed to download images




                              Enterprise extensions to Magnolia's imaging module 41
image-metadata-writer – integration

 custom ImagingServlet
    initializes and uses the custom Streamers



 Image-Op „MetadataWriteOp“
    used to indicate when metadata should be written
    sets flag, doesn‘t do anything to image



 Image-Op „SetContentDispositionOp“
    set content-disposition to enable downloads
    sets header, doesn‘t do anything to image




                              Enterprise extensions to Magnolia's imaging module 42
image-metadata-writer – integration

 Setup modifies imaging module config (custom Servlet)
 Usage configured in theme via variations




                        Enterprise extensions to Magnolia's imaging module 43
image-metadata-writer module – conclusion

 enabled simplified workflow for editors and photographers


 problem: images being rewritten
    IPTC is supported only for JPEG, PNG
    output always JPEG
    changes image format, quality and size



 future version
    set metadata without rewriting pixels
    use other image library, when available




                              Enterprise extensions to Magnolia's imaging module 44
Thank you!
Questions?
Enterprise Extensions to Magnolia's Imaging

Contenu connexe

Similaire à Enterprise Extensions to Magnolia's Imaging

Simplifying the Creation of Machine Learning Workflow Pipelines for IoT Appli...
Simplifying the Creation of Machine Learning Workflow Pipelines for IoT Appli...Simplifying the Creation of Machine Learning Workflow Pipelines for IoT Appli...
Simplifying the Creation of Machine Learning Workflow Pipelines for IoT Appli...ScyllaDB
 
SCADA a gyakorlatban - Accenture Industry X.0 Meetup
SCADA a gyakorlatban - Accenture Industry X.0 MeetupSCADA a gyakorlatban - Accenture Industry X.0 Meetup
SCADA a gyakorlatban - Accenture Industry X.0 MeetupAccenture Hungary
 
Exploring CameraX from JetPack
Exploring CameraX from JetPackExploring CameraX from JetPack
Exploring CameraX from JetPackHassan Abid
 
Production ML Systems and Computer Vision with Google Cloud
Production ML Systems and Computer Vision with Google CloudProduction ML Systems and Computer Vision with Google Cloud
Production ML Systems and Computer Vision with Google Cloudgdgsurrey
 
RESUME_Harisyam
RESUME_HarisyamRESUME_Harisyam
RESUME_HarisyamHari Syam
 
Pragmatic approach to Microservice Architecture: Role of Middleware
Pragmatic approach to Microservice Architecture: Role of MiddlewarePragmatic approach to Microservice Architecture: Role of Middleware
Pragmatic approach to Microservice Architecture: Role of MiddlewareAsanka Abeysinghe
 
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei ZahariaDeep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei ZahariaGoDataDriven
 
William Impey CV
William Impey CVWilliam Impey CV
William Impey CVWill Impey
 
Cloud-native Java EE-volution
Cloud-native Java EE-volutionCloud-native Java EE-volution
Cloud-native Java EE-volutionQAware GmbH
 
Front end microservices - October 2019
Front end microservices - October 2019Front end microservices - October 2019
Front end microservices - October 2019Mikhail Kuznetcov
 
IBM SmartCloud Orchestration
IBM SmartCloud OrchestrationIBM SmartCloud Orchestration
IBM SmartCloud OrchestrationIBM Danmark
 
Reuse Strategy for MBSE Data - GPDIS 2022
Reuse Strategy for MBSE Data - GPDIS 2022Reuse Strategy for MBSE Data - GPDIS 2022
Reuse Strategy for MBSE Data - GPDIS 2022SodiusWillert
 
James Jara Portfolio 2014 Part 1
James Jara Portfolio 2014 Part 1James Jara Portfolio 2014 Part 1
James Jara Portfolio 2014 Part 1James Jara
 
MongoDB.local Sydney 2019: Building Intelligent Apps with MongoDB & Google Cloud
MongoDB.local Sydney 2019: Building Intelligent Apps with MongoDB & Google CloudMongoDB.local Sydney 2019: Building Intelligent Apps with MongoDB & Google Cloud
MongoDB.local Sydney 2019: Building Intelligent Apps with MongoDB & Google CloudMongoDB
 
MicroManager_MATLAB_Implementation
MicroManager_MATLAB_ImplementationMicroManager_MATLAB_Implementation
MicroManager_MATLAB_ImplementationPhilip Mohun
 
Semantic Integration Patterns for Industry 4.0
Semantic Integration Patterns for Industry 4.0Semantic Integration Patterns for Industry 4.0
Semantic Integration Patterns for Industry 4.0Georg Guentner
 
Supercharge your data analytics with BigQuery
Supercharge your data analytics with BigQuerySupercharge your data analytics with BigQuery
Supercharge your data analytics with BigQueryMárton Kodok
 

Similaire à Enterprise Extensions to Magnolia's Imaging (20)

Simplifying the Creation of Machine Learning Workflow Pipelines for IoT Appli...
Simplifying the Creation of Machine Learning Workflow Pipelines for IoT Appli...Simplifying the Creation of Machine Learning Workflow Pipelines for IoT Appli...
Simplifying the Creation of Machine Learning Workflow Pipelines for IoT Appli...
 
TAXTRON Profile_PDF
TAXTRON Profile_PDFTAXTRON Profile_PDF
TAXTRON Profile_PDF
 
SCADA a gyakorlatban - Accenture Industry X.0 Meetup
SCADA a gyakorlatban - Accenture Industry X.0 MeetupSCADA a gyakorlatban - Accenture Industry X.0 Meetup
SCADA a gyakorlatban - Accenture Industry X.0 Meetup
 
Exploring CameraX from JetPack
Exploring CameraX from JetPackExploring CameraX from JetPack
Exploring CameraX from JetPack
 
Work Portfolio
Work PortfolioWork Portfolio
Work Portfolio
 
Production ML Systems and Computer Vision with Google Cloud
Production ML Systems and Computer Vision with Google CloudProduction ML Systems and Computer Vision with Google Cloud
Production ML Systems and Computer Vision with Google Cloud
 
RESUME_Harisyam
RESUME_HarisyamRESUME_Harisyam
RESUME_Harisyam
 
Pragmatic approach to Microservice Architecture: Role of Middleware
Pragmatic approach to Microservice Architecture: Role of MiddlewarePragmatic approach to Microservice Architecture: Role of Middleware
Pragmatic approach to Microservice Architecture: Role of Middleware
 
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei ZahariaDeep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
 
William Impey CV
William Impey CVWilliam Impey CV
William Impey CV
 
Cloud-native Java EE-volution
Cloud-native Java EE-volutionCloud-native Java EE-volution
Cloud-native Java EE-volution
 
Front end microservices - October 2019
Front end microservices - October 2019Front end microservices - October 2019
Front end microservices - October 2019
 
IBM SmartCloud Orchestration
IBM SmartCloud OrchestrationIBM SmartCloud Orchestration
IBM SmartCloud Orchestration
 
Reuse Strategy for MBSE Data - GPDIS 2022
Reuse Strategy for MBSE Data - GPDIS 2022Reuse Strategy for MBSE Data - GPDIS 2022
Reuse Strategy for MBSE Data - GPDIS 2022
 
James Jara Portfolio 2014 Part 1
James Jara Portfolio 2014 Part 1James Jara Portfolio 2014 Part 1
James Jara Portfolio 2014 Part 1
 
MongoDB.local Sydney 2019: Building Intelligent Apps with MongoDB & Google Cloud
MongoDB.local Sydney 2019: Building Intelligent Apps with MongoDB & Google CloudMongoDB.local Sydney 2019: Building Intelligent Apps with MongoDB & Google Cloud
MongoDB.local Sydney 2019: Building Intelligent Apps with MongoDB & Google Cloud
 
MicroManager_MATLAB_Implementation
MicroManager_MATLAB_ImplementationMicroManager_MATLAB_Implementation
MicroManager_MATLAB_Implementation
 
Semantic Integration Patterns for Industry 4.0
Semantic Integration Patterns for Industry 4.0Semantic Integration Patterns for Industry 4.0
Semantic Integration Patterns for Industry 4.0
 
Supercharge your data analytics with BigQuery
Supercharge your data analytics with BigQuerySupercharge your data analytics with BigQuery
Supercharge your data analytics with BigQuery
 
Portafolio
PortafolioPortafolio
Portafolio
 

Plus de bkraft

The Open Suite Approach: How to ride the shock waves of a changing web
The Open Suite Approach: How to ride the shock waves of a changing webThe Open Suite Approach: How to ride the shock waves of a changing web
The Open Suite Approach: How to ride the shock waves of a changing webbkraft
 
Von der statischen Website zur virtuellen Präsenz - Vortrag für Nordwestschwe...
Von der statischen Website zur virtuellen Präsenz - Vortrag für Nordwestschwe...Von der statischen Website zur virtuellen Präsenz - Vortrag für Nordwestschwe...
Von der statischen Website zur virtuellen Präsenz - Vortrag für Nordwestschwe...bkraft
 
Magnolia Conference 2013: Keynote
Magnolia Conference 2013: KeynoteMagnolia Conference 2013: Keynote
Magnolia Conference 2013: Keynotebkraft
 
Webinar slides: Orchestrate Your Digital Channels with Magnolia 5
Webinar slides: Orchestrate Your Digital Channels with Magnolia 5Webinar slides: Orchestrate Your Digital Channels with Magnolia 5
Webinar slides: Orchestrate Your Digital Channels with Magnolia 5bkraft
 
Webinar - Why Magnolia 5 Rocks For IT
Webinar - Why Magnolia 5 Rocks For ITWebinar - Why Magnolia 5 Rocks For IT
Webinar - Why Magnolia 5 Rocks For ITbkraft
 
Increase Online Sales with Magnolia CMS' Shop Module
Increase Online Sales with Magnolia CMS' Shop ModuleIncrease Online Sales with Magnolia CMS' Shop Module
Increase Online Sales with Magnolia CMS' Shop Modulebkraft
 
Virtual Presence Management at Magnolia Amplify Miami 2013
Virtual Presence Management at Magnolia Amplify Miami 2013Virtual Presence Management at Magnolia Amplify Miami 2013
Virtual Presence Management at Magnolia Amplify Miami 2013bkraft
 
High performance and scalability
High performance and scalability High performance and scalability
High performance and scalability bkraft
 
Multilingual websites, microsites and landing pages
Multilingual websites, microsites and landing pagesMultilingual websites, microsites and landing pages
Multilingual websites, microsites and landing pagesbkraft
 
Blossom on the web
Blossom on the webBlossom on the web
Blossom on the webbkraft
 
Single sourcing desktop and mobile websites
Single sourcing desktop and mobile websitesSingle sourcing desktop and mobile websites
Single sourcing desktop and mobile websitesbkraft
 
Work life balance
Work life balanceWork life balance
Work life balancebkraft
 
Magnolia and PHPCR
Magnolia and PHPCRMagnolia and PHPCR
Magnolia and PHPCRbkraft
 
Solr and Image Module Extensions of Magnolia
Solr and Image Module Extensions of MagnoliaSolr and Image Module Extensions of Magnolia
Solr and Image Module Extensions of Magnoliabkraft
 
End to end content managed online mobile banking
End to end content managed online mobile bankingEnd to end content managed online mobile banking
End to end content managed online mobile bankingbkraft
 
MBC Group - Magnolia in the Media
MBC Group - Magnolia in the MediaMBC Group - Magnolia in the Media
MBC Group - Magnolia in the Mediabkraft
 
Yet Another E-Commerce Integration: Magnolia Loves Hybris
Yet Another E-Commerce Integration: Magnolia Loves Hybris Yet Another E-Commerce Integration: Magnolia Loves Hybris
Yet Another E-Commerce Integration: Magnolia Loves Hybris bkraft
 
Bridging the Gap: Magnolia Modules and Spring Configured Software
Bridging the Gap: Magnolia Modules and Spring Configured SoftwareBridging the Gap: Magnolia Modules and Spring Configured Software
Bridging the Gap: Magnolia Modules and Spring Configured Softwarebkraft
 
User Management and SSO for Austrian Government
User Management and SSO for Austrian GovernmentUser Management and SSO for Austrian Government
User Management and SSO for Austrian Governmentbkraft
 
How the STK, CSS & HTML and Rapid Prototyping Accelerate the Design Process
How the STK, CSS & HTML and Rapid Prototyping Accelerate the Design ProcessHow the STK, CSS & HTML and Rapid Prototyping Accelerate the Design Process
How the STK, CSS & HTML and Rapid Prototyping Accelerate the Design Processbkraft
 

Plus de bkraft (20)

The Open Suite Approach: How to ride the shock waves of a changing web
The Open Suite Approach: How to ride the shock waves of a changing webThe Open Suite Approach: How to ride the shock waves of a changing web
The Open Suite Approach: How to ride the shock waves of a changing web
 
Von der statischen Website zur virtuellen Präsenz - Vortrag für Nordwestschwe...
Von der statischen Website zur virtuellen Präsenz - Vortrag für Nordwestschwe...Von der statischen Website zur virtuellen Präsenz - Vortrag für Nordwestschwe...
Von der statischen Website zur virtuellen Präsenz - Vortrag für Nordwestschwe...
 
Magnolia Conference 2013: Keynote
Magnolia Conference 2013: KeynoteMagnolia Conference 2013: Keynote
Magnolia Conference 2013: Keynote
 
Webinar slides: Orchestrate Your Digital Channels with Magnolia 5
Webinar slides: Orchestrate Your Digital Channels with Magnolia 5Webinar slides: Orchestrate Your Digital Channels with Magnolia 5
Webinar slides: Orchestrate Your Digital Channels with Magnolia 5
 
Webinar - Why Magnolia 5 Rocks For IT
Webinar - Why Magnolia 5 Rocks For ITWebinar - Why Magnolia 5 Rocks For IT
Webinar - Why Magnolia 5 Rocks For IT
 
Increase Online Sales with Magnolia CMS' Shop Module
Increase Online Sales with Magnolia CMS' Shop ModuleIncrease Online Sales with Magnolia CMS' Shop Module
Increase Online Sales with Magnolia CMS' Shop Module
 
Virtual Presence Management at Magnolia Amplify Miami 2013
Virtual Presence Management at Magnolia Amplify Miami 2013Virtual Presence Management at Magnolia Amplify Miami 2013
Virtual Presence Management at Magnolia Amplify Miami 2013
 
High performance and scalability
High performance and scalability High performance and scalability
High performance and scalability
 
Multilingual websites, microsites and landing pages
Multilingual websites, microsites and landing pagesMultilingual websites, microsites and landing pages
Multilingual websites, microsites and landing pages
 
Blossom on the web
Blossom on the webBlossom on the web
Blossom on the web
 
Single sourcing desktop and mobile websites
Single sourcing desktop and mobile websitesSingle sourcing desktop and mobile websites
Single sourcing desktop and mobile websites
 
Work life balance
Work life balanceWork life balance
Work life balance
 
Magnolia and PHPCR
Magnolia and PHPCRMagnolia and PHPCR
Magnolia and PHPCR
 
Solr and Image Module Extensions of Magnolia
Solr and Image Module Extensions of MagnoliaSolr and Image Module Extensions of Magnolia
Solr and Image Module Extensions of Magnolia
 
End to end content managed online mobile banking
End to end content managed online mobile bankingEnd to end content managed online mobile banking
End to end content managed online mobile banking
 
MBC Group - Magnolia in the Media
MBC Group - Magnolia in the MediaMBC Group - Magnolia in the Media
MBC Group - Magnolia in the Media
 
Yet Another E-Commerce Integration: Magnolia Loves Hybris
Yet Another E-Commerce Integration: Magnolia Loves Hybris Yet Another E-Commerce Integration: Magnolia Loves Hybris
Yet Another E-Commerce Integration: Magnolia Loves Hybris
 
Bridging the Gap: Magnolia Modules and Spring Configured Software
Bridging the Gap: Magnolia Modules and Spring Configured SoftwareBridging the Gap: Magnolia Modules and Spring Configured Software
Bridging the Gap: Magnolia Modules and Spring Configured Software
 
User Management and SSO for Austrian Government
User Management and SSO for Austrian GovernmentUser Management and SSO for Austrian Government
User Management and SSO for Austrian Government
 
How the STK, CSS & HTML and Rapid Prototyping Accelerate the Design Process
How the STK, CSS & HTML and Rapid Prototyping Accelerate the Design ProcessHow the STK, CSS & HTML and Rapid Prototyping Accelerate the Design Process
How the STK, CSS & HTML and Rapid Prototyping Accelerate the Design Process
 

Dernier

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 

Dernier (20)

What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 

Enterprise Extensions to Magnolia's Imaging

  • 2. Enterprise extensions to Magnolia's imaging module Magnolia Conference 2012 – Technical Track Presented by Richard Unger and Rihard Monovic
  • 3. Agenda 1 About RISE and LFRZ 2 Introduction to Magnolia’s imaging module 3 Imaging extensions a. Captcha module b. Imaging-PDF module c. Image-metadata module d. Image-metadata-writer module 4 Questions? Presentation Title 3
  • 5. About RISE and LFRZ – Partnership  RISE  partner for industry  LFRZ  partner for government Enterprise extensions to Magnolia's imaging module 5
  • 6. About RISE  Corporation, www.rise-world.com  TU Spin Off, founded 1987  TU Vienna, INSO – The Think Tank of RISE, 40 PhDs  Competences  More than 300 world-class IT-engineers & architects  Highly acknowledged R&D-enterprise in Europe  Top-Developer (e.g. part of the world-wide Java-Eclipse provider community, component delivery)  Specialists in IT-Infrastructure and IT-Integration  Top-Experts in e.g. IT-Architecture, IT-Strategy, IT-Security, Usability, Transport IT, System-Performance  Locations  HQ in Schwechat/Airport and Vienna  offices in several countries  RISE personell works world-wide Enterprise extensions to Magnolia's imaging module 6
  • 7. About RISE - Project examples  2003 – 2006: ID Card for all Austrians + country-wide IT infrastructure 8 mio. electronic ID-Cards, 24.000 specially designed components for offices, delivered in 24 months  2005 – 2008: overall health network in Germany, architecture, planning and project/program management for the at that time largest IT project in Europe (1,8 billion €), design at CeBit 2005, leaded till 2008  2009 – 2012: country-wide ticketing for railway / public transport in Austria, 10 million tickets/year, highly complex interoperability, all access channels (clerk counter, pos-automat, internet, travel agent, mobile phone)  2007 – 2008: design and architecture of the government network plus the school&health network of Qatar, including NOC (network operating center) and SOC (security operating center)  1993 – today: IT infrastructure, software projects, rollouts, IT architec- tures for e.g. MoI, MoH, MoF, MoA, MoS, MoX… in several countries Enterprise extensions to Magnolia's imaging module 7
  • 8. About RISE - Clients  AMS Österreich  Oesterreichische Kontrollbank AG  Bank Austria Treasury Merger & Systemupgrades  Österreichische Universitäten – IT-Gesamtstrategie  Bundesrechenzentrum – Test- und Multiprojektmanagement  Bundesverwaltung – ELAK Einführung  IT-Portfolio – Die Presse  Dresdner Bank  Bundesministerium für Gesundheit Berlin  Justizministerium United Arabic Emirates  ICT Qatar (gesamtes IKT-Portfolio)  Usability- und Web-Strategie der indischen Regierung  Qatar Foundation (Infrastruktur-Planung)  e-Governement-Strategie Libyen Enterprise extensions to Magnolia's imaging module 8
  • 9. About LFRZ  “Land-, forst- & wasserwirtschaftliches Rechenzentrum GmbH” – www.lfrz.at  IT service provider  located in Vienna  owned by Austrian „ministry of agriculture“, which is also the principal customer  approx. 30 employees + external consultants  focus is on GIS, SSO, custom application development in Java, data integration, IT operations  and CMS Enterprise extensions to Magnolia's imaging module 9
  • 10. About LFRZ - Clients  LFRZ’s principal customer, principal website  www.lebensministerium.at Enterprise extensions to Magnolia's imaging module 10
  • 12. Magnolia‘s imaging module  generate images on the fly as needed by website designs  cache generated images generate once, serve quickly after first request  flexible, extensible configurable generators, image-ops, chains  STK integration „stk“ generator, variations configured in theme Enterprise extensions to Magnolia's imaging module 12
  • 13. Magnolia‘s imaging module Enterprise extensions to Magnolia's imaging module 13
  • 15. Imaging extensions – Custom modules  captcha captcha image generation  imaging-pdf extension of imaging module for PDFs  image-metadata EXIF, IPTC and XMP metadata import  image-metadata-writer output of image metadata Enterprise extensions to Magnolia's imaging module 15
  • 17. Captcha module  Generate captchas via imaging  Uses open-source java captcha library http://jcaptcha.sourceforge.net/  Integrated into magnolia’s imaging  Highly configurable Enterprise extensions to Magnolia's imaging module 17
  • 18. Captcha module – jcaptcha library  pure java captcha image generation  flexible configuration – compose different “captcha engines”  WordGenerator, FontGenerator, BackgroundGenerator, TextPaster, ImageDeformation  various different implementations of each  CaptchaService  Stores generated captchas for verification  Control TTL and max stored captchas  Simple methods to generate or verify a captcha-image Enterprise extensions to Magnolia's imaging module 18
  • 19. Captcha module – Integration in Magnolia  Configuration via content2bean  Multiple captcha-engines configurable  different look & feel  different security requirements  Many configuration options exposed Enterprise extensions to Magnolia's imaging module 19
  • 20. Captcha module – Integration in Magnolia  Standard Imaging generator  generator: “captcha”  Custom ParameterProvider  URLs of form: /.imaging/captcha/<captchaengine>/<id>  CaptchaParameterProviderFactory  parses URLs, no caching (NullCachingStrategy)  Custom image-op for loading: CaptchaLoader  generates and returns the image Enterprise extensions to Magnolia's imaging module 20
  • 21. Captcha module – Usage in template <script> function guidGenerator() {  generate id var S4 = function() { return (((1+Math.random())*0x10000)| 0).toString(16).substring(1);  any string }; return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4() +S4()); } var SubUUID = guidGenerator(); </script>  include captcha  include id <script> document.write('<img src="${contextPath}/.imaging/captcha/default/'+SubUUID+'.png"/>'); document.write('<input type="hidden" name="captchaid" value="'+SubUUID+'" />'); </script> <input name="captcha" value="" />  Why use JavaScript? Enterprise extensions to Magnolia's imaging module 21
  • 22. Captcha module – Usage in model  verify captcha @Override public String execute() { // check captcha if (checkCaptcha()){ // do something… } } protected boolean checkCaptcha() { // get service name from paragraph definition captchaServiceName = (String) getDefinition().getParameters().get("captchaServiceName"); if (StringUtils.isEmpty(captchaServiceName)) return true; // if not set, captcha-check is skipped and we return true if (StringUtils.isEmpty(getCaptcha()) || StringUtils.isEmpty(getCaptchaid())) return false; if (!CaptchaModule.verifyCaptcha(captchaServiceName, getCaptchaid(), getCaptcha())) return false; return true; } Enterprise extensions to Magnolia's imaging module 22
  • 23. Captcha module – Conclusion  working well in production  exemplifies magnolia‘s „openness“ and extensibility  not implemented yet  full configuration  audio-captchas Enterprise extensions to Magnolia's imaging module 23
  • 25. imaging-pdf module  image variations of PDF documents  uses open-source PDF library http://www.jpedal.org/  integrated in magnolia’s imaging  transparent operation Enterprise extensions to Magnolia's imaging module 25
  • 26. imaging-pdf module - jpedal  pure java PDF to image conversion  works with most PDFs  STK “variations”  configured in theme  provide thumbnails  used by “stk” imaging generator  variations are cool  but only support image formats readable by java ImageIO Enterprise extensions to Magnolia's imaging module 26
  • 27. imaging-pdf – integration in magnolia  Custom image-op for loading  Extends standard “FromNodeData” image-op  Overrides loadSource()  Checks for PDF  Defers to superclass if not PDF  Custom “OutputFormat”  Changes format to “PNG” if source is PDF Enterprise extensions to Magnolia's imaging module 27
  • 28. imaging-pdf – integration in magnolia  Output format is configured for generator  “stk” generator config is modified  PDF-enabled variation configured in theme Enterprise extensions to Magnolia's imaging module 28
  • 29. imaging-pdf – conclusion  working well in production  motivation:  “Publications Database”  Previews Enterprise extensions to Magnolia's imaging module 29
  • 31. image-metadata module – use case  photographers take pictures, often >100 at one event  pictures need to be published on website (“Fotoservice”)  each picture needs:  title, alt-text (WCAG !)  description, location  attribution: copyright, owner, source  manual metadata input for 100s of pictures not practical  photographers enter this information in image metadata  using their normal tools (eg. Adobe Photoshop)  photographers upload images using ZIP-Upload to DMS Enterprise extensions to Magnolia's imaging module 31
  • 32. image-metadata module  imports metadata from image files  uses apache “sanselan” library – all formats supported  custom “image-upload-wizard”  also works for ZIP-Upload  metadata: EXIF, IPTC, XMP  import metadata to contentNode under image  mappings to import metadata into properties of image node Enterprise extensions to Magnolia's imaging module 32
  • 33. image-metadata – integration in magnolia  Apache sanselan library  open source  reads image metadata from different formats  metadata is imported on upload to DMS  individual upload or ZIP-upload supported  metadata is imported to contentNodes: EXIF, XMP and IPTC  image-metadata module has configurable mappings  metadata also set in DMS image properties via mapping Enterprise extensions to Magnolia's imaging module 33
  • 34. image-metadata – integration in magnolia  Mapping configuration for XMP and IPTC Enterprise extensions to Magnolia's imaging module 34
  • 35. image-metadata module – challenges  DMS content editing dialog is “single step”  Metadata-import requires 2 steps:  load image and import metadata  then display metadata for editing  Metadata formats very “unclean”  different tools create various forms of wrong metadata  in particular, encodings are a huge problem (ÜÖÄß) Enterprise extensions to Magnolia's imaging module 35
  • 36. image-metadata module – implementation  DMS tree and edit dialog  custom, 2-step “DMS editing Wizard Dialog”  custom trees and tree-config to enable use of dialog  ZIP Upload  custom “ZipUploadPage”  Apache sanselan  compiled sanselan from source (for newest version)  modified sanselan to perform “encoding detection” Enterprise extensions to Magnolia's imaging module 36
  • 37. image-metadata module – conclusion  works well in production  some problems due to tools used by photographers  photographers get training, documentation  makes large photo libraries manageable for editors  editors are not computer experts  improves data quality Enterprise extensions to Magnolia's imaging module 37
  • 39. image-metadata-writer module  writes metadata to image files on output  strips existing metadata  writes metadata as IPTC  uses the same configuration objects as image-metadata  “closes loop” with image-metadata module  metadata is imported to and edited in magnolia’s DMS  output images can use edited metadata Enterprise extensions to Magnolia's imaging module 39
  • 40. image-metadata-writer - implementation  uses “ImageRO” library  closed source, commercial http://reader.imagero.com/  not recommended   no support for metadata writing (XMP, IPTC) in java ImageIO  very limited support in other libraries (eg. sanselan)  not working well – ImageRO was the only working solution  writing image metadata seems to be unsolved in java Enterprise extensions to Magnolia's imaging module 40
  • 41. image-metadata-writer – integration  extends core components of imaging module  duplicates some code, unfortunately   custom ImageStreamer  writes images with metadata if requested  defaults to normal behaviour (via superclass) if not  custom CachingImageStreamer  remembers „content-disposition“ in imaging cache  normal .imaging links work for embedded images  for our purpose we needed to download images Enterprise extensions to Magnolia's imaging module 41
  • 42. image-metadata-writer – integration  custom ImagingServlet  initializes and uses the custom Streamers  Image-Op „MetadataWriteOp“  used to indicate when metadata should be written  sets flag, doesn‘t do anything to image  Image-Op „SetContentDispositionOp“  set content-disposition to enable downloads  sets header, doesn‘t do anything to image Enterprise extensions to Magnolia's imaging module 42
  • 43. image-metadata-writer – integration  Setup modifies imaging module config (custom Servlet)  Usage configured in theme via variations Enterprise extensions to Magnolia's imaging module 43
  • 44. image-metadata-writer module – conclusion  enabled simplified workflow for editors and photographers  problem: images being rewritten  IPTC is supported only for JPEG, PNG  output always JPEG  changes image format, quality and size  future version  set metadata without rewriting pixels  use other image library, when available Enterprise extensions to Magnolia's imaging module 44