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/xwiki-rendering-xwiki/src/main/java/org/xwiki/rendering/internal/wiki/XWikiWikiModel.java
>  
> ). 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
>>
>>> Thanks,
>>> Marius
>>>
>>> [1]
>>> http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/plugin/image/
>>> _______________________________________________
>>> users mailing list
>>> [email protected]
>>> http://lists.xwiki.org/mailman/listinfo/users
>>>
>> _______________________________________________
>> users mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/users
> _______________________________________________
> users mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/users
> 

_______________________________________________
users mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/users

Reply via email to