Would be interesting to be moved as documentation on xwiki.org… :) Best place IMO would be to create an extension for the Image Plugin on extensions.xwiki.org and document it.
Thanks -Vincent On Feb 14, 2012, at 7:56 AM, Sergiu Dumitriu wrote: > On 02/12/2012 05:54 PM, Paul Libbrecht wrote: >> >> Hello fellow xwiki users, >> >> we discovered recently the usage of the width parameter when delivering a >> picture from an xwiki document attachment. >> >> Surprisingly this is available in our production server, based on the grumpy >> xwiki 1.5, but has not been used in the UI of Curriki which has, however, >> been made by a team of XWiki SàRL originally. > > Yes, this has been implemented for a very long time. If I remember correctly, > it might have been introduced even before 1.0, or at least very soon after > that. > >> - can someone describe me how this feature is working? > > Basically, whenever an image download request is processed, the ImagePlugin > intercepts it via the downloadAttachment plugin SPI method, and, if there are > width or height request parameter, instead of serving the original > attachment, it will create a new fake attachment holding the resized image. > >> - is the resulting downscaled image cached in file or in ram? > > There's a filesystem cache for resized images, indeed, so that the same file > isn't scaled for each request. Still, when downloading a specific image, it > will be held in memory as any XWikiAttachment object. > >> - has there been a different implementation between the current xwiki (e.g. >> 3.4) and 1.5? > > Yes, kind of. It used to be all in > https://github.com/xwiki/xwiki-platform/blob/c9b8a703cff266363782eee623ff4eb61aad4b45/xwiki-core/src/main/java/com/xpn/xwiki/plugin/image/ImagePlugin.java#L165 > but the image scaling code has been moved out of the plugin, and is now in > https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/internal/plugin/image/DefaultImageProcessor.java > (the call to this component is still in the plugin, though). > > There have been a few changes and improvements between the two versions. > Besides the width and height parameters, now there's support for a "quality" > parameter, a number between 0 and 1 controlling the compression quality for > JPEG files, and a "keepAspectRatio" parameter which means that in case both a > width and a height are specified, the image will be scaled with the same > aspect ratio to fit within the specified width and height. > >> - except for the CPU hogging of computing the downscaled version, is there >> any reason not to use this feature? (e.g. RAM overloading?). > > It should be used as much as possible. The only problems are the extra > storage needed for storing thumbnails, and the extra CPU time needed to > scale, or at least to access the cached file from the disk. > > In recent versions this feature has been used more and more, so most places > where images are used at a different size should already be making use of > this feature. > >> thanks in advance >> >> Paul > > -- > Sergiu Dumitriu > http://purl.org/net/sergiu/ > _______________________________________________ > users mailing list > users@xwiki.org > http://lists.xwiki.org/mailman/listinfo/users _______________________________________________ users mailing list users@xwiki.org http://lists.xwiki.org/mailman/listinfo/users