Marius Dumitru Florea wrote:
  Hi Caleb,
 On 09/09/2010 02:22 AM, Caleb James DeLisle wrote:
 Marius Dumitru Florea wrote:
> Hi devs,
>
> Currently the image plugin [1] allows us to create image thumbnails by
> specifying the image width and/or height in the query string of the
> image attachment download URL:
>
> /xwiki/bin/download/Spage/Page/image.jpg?width=100
>
> I propose that we:
>
> (A) Use the image width and/or height (when they are specified in the
> image syntax using pixel unit) to resize the image on the server side.
> For instance:
>
> [[image:logo.jpg||width="100px"]]
>
> will be linked to
>
> /xwiki/bin/download/Spage/Page/logo.jpg?width=100 
  This seems to be fuzzing the line between url
parameters and html
 tag attributes. why not just use [[image:logo.jpg?width=100px]] 
 First of all, you make the assumption that users know what a URL query
 string is. I don't fully agree with this. Then some users might get
 confused if there are two ways of specifying image width/height: should
 we put the width/height in the image reference or in the image
 parameters? Finally, writing:
 [[image:logo.jpg?width=100||width=50px]]
 makes no sense. Why would you want to download a 100px image when you
 display it at 50px only.
 Also, IMO wiki syntax is independent from HTML. When you write:
 [[image:logo.jpg||width="100px"]]
 "width" is a parameter of the image. This wiki syntax could be rendered
 in many formats. One of these formats is HTML, but it's not the only
 one. When rendered in HTML the width parameter is mapped to the width
 HTML image attribute but that doesn't mean we can't use the width
 parameter for other things, like adjusting the image URL.
 IMO what's really important is to honor user expectations. When a user
 writes:
 [[image:logo.jpg||width="100px"]]
 he expects to see the logo.jpg image displayed and its width to be
 100px. My proposal doesn't change this. Resizing the image on the server
 is an optimization and I think most of the users will be happy with it
 (the page will load faster). 
I can see the logic in this.
+1
 > and
>
> [[image:logo.jpg||style="height: 50px; width: 70px"]]
>
> will be linked to
>
> /xwiki/bin/download/Spage/Page/logo.jpg?width=70&height=50 
  Parsing CSS and extracting widths and heights for
server side scaling? 
 Yes, using 
http://cssparser.sourceforge.net/ . 
 
'IMO wiki syntax is independent from HTML. When you write [...]
"width" is a parameter of the image. This wiki syntax could be
rendered in many formats.'
After thinking it over I agree but now aren't we risking an too much
 dependence on CSS? It seems a bit odd to have a CSS parser for only
one job and specifying style in an html attribute is WCAG invalid.
Is there a common use case?
   The image
plugin also accepts a quality parameter that controls the
 compression quality when encoding jpeg images. The default value of this
 parameter (i.e. when not specified in the URL) is configurable. I
 propose we use 0.3 by default, 1 representing the best quality.
 (B) Add the ability to limit the image dimensions (preserving aspect
 ratio) when the image width and/or height are not specified in the image
 syntax (or when they are not using pixel unit). The width and height
 limit will be configurable and -1 by default (i.e. no limitation). For
 instance:
 image:logo.jpg
 will be linked to
 /xwiki/bin/download/Spage/Page/logo.jpg?width=1024
 when width limit is 1024, and to
/xwiki/bin/download/Spage/Page/logo.jpg?width=1024&height=768&keepAspectRatio=true
 when width limit is 1024 and height limit is 768. Note that in this case
 the image aspect ratio is preserved. The image is resized to best fit
 the limits. If the user want to bypass the limit he has to specify the
 image width/height in the image syntax.
 I'm +1 for both (A) and (B). WDYT? 
 +1 B 
 
  A I need to hear more about how it will be
implemented, from what i
 read it doesn't look right. 
 As Thomas said, it will be implemented in a XWiki specific
 implementation of WikiModel (
http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-rendering/xwik…
 ). We're going to add a method to get the image URL based on: document
 reference, attachment file name and image parameters. The implementation
 looks for the width, height and style parameters and tries to extract
 image width/height from them. If it succeeds then it adds this
 information to the query string of the attachment download URL. When the
 image is requested by the browser the image plugin is called and it uses
 the width and height request parameters (if specified) to scale the
 image attachment. The image size is never increased. The image plugin
 uses a component for image processing (decode, scale, encode). The
 default implementation of this component uses javax.imageio and java.awt
 classes for image processing.
 Thanks for your feedback,
 Marius
  Caleb
 _______________________________________________
 users mailing list
 users(a)xwiki.org
 
http://lists.xwiki.org/mailman/listinfo/users 
_______________________________________________
 users mailing list
 users(a)xwiki.org
 
http://lists.xwiki.org/mailman/listinfo/users