On 09/09/2010 11:30 PM, Dan Bozaru wrote:
>
>
> On 09/09/2010 02:14 PM, Caleb James DeLisle wrote:
>>
>> Marius Dumitru Florea wrote:
>>
>>> On 09/09/2010 12:18 PM, Caleb James DeLisle wrote:
>>>
>>>> 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?
>>>>
>>> Right now the common use case is when a user resizes an image from the
>>> WYSIWYG editor using the image resize handlers. The browser puts the
>>> width and height information in the style attribute. I can move the
>>> width and height to the corresponding attributes afterwards but:
>>>
>>> * The style attribute is still required when width and height are not
>>> expressed in pixel or percent. This won't happen often but the user can
>>> explicitly set the width/height to other units like em in the edit image
>>> WYSIWYG wizard.
>>> * The user can still write:
>>>
>>> [[image:logo.jpg||style="height: 50px; width: 70px"]]
>>>
>>> in the wiki editor and the image will be displayed as expected.
>>>
>>> I admit that the style parameter for image syntax (and not only) is HTML
>>> oriented but I think it's ok to parse it in order to optimize page
>>> loading speed.
>>>
>> It still doesn't sound right to me but I'll trust your judgment here.
>>
>> 0
>>
>> Caleb
>>

> I think the best way would be to have this configurable in, for example,
> xwikipreferences. This way, it wouldn't sound "wrong" from an
> architectural point of view anymore, imo.

Are you referring to the parsing of the style parameter or to the 
modification of the image URL to include the width/height information? 
I'm fine with adding a configuration parameter to be able to disable the 
server side resizing of images, but I don't think a parameter for 
disabling the parsing of the style attribute is really useful.

Thanks for your feedback,
Marius

>
> +1
>
> Dan
>>
>>> Thanks,
>>> Marius
>>>
>>>
>>>>>>> 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
>>>>
>>> _______________________________________________
>>> 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