Uploaded image for project: 'XWiki Platform'
  1. XWiki Platform
  2. XWIKI-5479

Include image dimensions in the image URL for server side image resizing

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.5 M1
    • Fix Version/s: 2.5 M2
    • Component/s: {Unused} Rendering 2.0
    • Labels:
      None
    • Tests:
      Unit
    • Difficulty:
      Easy
    • Similar issues:

      Description

      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

      and

      [[image:logo.jpg||style="height: 50px; width: 70px"]]

      will be linked to

      /xwiki/bin/download/Spage/Page/logo.jpg?width=70&height=50

      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.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                mflorea Marius Dumitru Florea
                Reporter:
                mflorea Marius Dumitru Florea
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: