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/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
>>
>>
>>> Thanks,
>>> Marius
>>>
>>> [1]
>>>
http://svn.xwiki.org/svnroot/xwiki/platform/core/trunk/xwiki-core/src/main/…
>>> _______________________________________________
>>> 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
>>
> _______________________________________________
> 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
_______________________________________________
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
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users