Harmony
  1. Harmony
  2. HARMONY-6447

[classlib] [imageio] Implement missing functionality in imageio module

    Details

    • Type: Task Task
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Classlib
    • Labels:
      None

      Description

      The imageio module has a significant amount of missing functionality in the javax.imageio, javax.imageio.spi and javax.imageio.stream packages. See:

      http://people.apache.org/~hindessm/japi/sun50-hydrlvm50.html#pkg_javax_imageio

      It is expected that an implementation and tests would be provided to complete this task.

      There are no Sub-Tasks for this issue.

        Activity

        Gavin made changes -
        Labels gsoc mentor
        Hide
        Lang Yang added a comment -

        Hello Jeremias, Thanks for your suggestion. I will definitely take some time to look into FOP and test new functionalities on it. Hope ImageIO module won't be a problem to FOP in few months.

        Show
        Lang Yang added a comment - Hello Jeremias, Thanks for your suggestion. I will definitely take some time to look into FOP and test new functionalities on it. Hope ImageIO module won't be a problem to FOP in few months.
        Hide
        Mark Hindess added a comment -

        Jeremias, thanks for the info. The FOP tests will be really useful. If you want to try harmony but don't want to setup your own harmony build, you can always grab the latest jdk from Hudson at:

        http://hudson.zones.apache.org/hudson/view/Harmony/job/Harmony-1.5-head-linux-x86_64/

        Show
        Mark Hindess added a comment - Jeremias, thanks for the info. The FOP tests will be really useful. If you want to try harmony but don't want to setup your own harmony build, you can always grab the latest jdk from Hudson at: http://hudson.zones.apache.org/hudson/view/Harmony/job/Harmony-1.5-head-linux-x86_64/
        Hide
        Jeremias Maerki added a comment -

        I'm happy to see that there's something happening on this front. If I may make a suggestion: you can use a current Apache FOP release (0.95 or even trunk) to test the new additions. The gaps in ImageIO are one of the last blockers to make the latest FOP releases work on Harmony. I'll try to find time to test myself. I've never built Harmony myself, yet, but will still try to do that. I also have a large set of test images accumulated from my work on FOP. That should help identifying more exotic problems. See also: http://wiki.apache.org/harmony/Apache_FOP. I'll update that page once I've looked at this once more.

        Show
        Jeremias Maerki added a comment - I'm happy to see that there's something happening on this front. If I may make a suggestion: you can use a current Apache FOP release (0.95 or even trunk) to test the new additions. The gaps in ImageIO are one of the last blockers to make the latest FOP releases work on Harmony. I'll try to find time to test myself. I've never built Harmony myself, yet, but will still try to do that. I also have a large set of test images accumulated from my work on FOP. That should help identifying more exotic problems. See also: http://wiki.apache.org/harmony/Apache_FOP . I'll update that page once I've looked at this once more.
        Hide
        Hudson added a comment -

        Integrated in Harmony-1.5-head-linux-x86_64 #732 (See http://hudson.zones.apache.org/hudson/job/Harmony-1.5-head-linux-x86_64/732/)
        Applied patch from "[#] [classlib] [imageio] Implement missing
        functionality in imageio module". Fixed whitespace to remove spaces.

        Show
        Hudson added a comment - Integrated in Harmony-1.5-head-linux-x86_64 #732 (See http://hudson.zones.apache.org/hudson/job/Harmony-1.5-head-linux-x86_64/732/ ) Applied patch from " [#] [classlib] [imageio] Implement missing functionality in imageio module". Fixed whitespace to remove spaces.
        Hide
        Mark Hindess added a comment -

        I committed a minor change in r927216 to add the image/x-png mimetype so that the results of your new methods now match the RI behaviour with respect to the plugins we have implementations for in Harmony.

        It might be easier to track any future patches as subtasks. That is, create a new JIRA that describes the particular improvement and "Link" it to this one. Thanks.

        Show
        Mark Hindess added a comment - I committed a minor change in r927216 to add the image/x-png mimetype so that the results of your new methods now match the RI behaviour with respect to the plugins we have implementations for in Harmony. It might be easier to track any future patches as subtasks. That is, create a new JIRA that describes the particular improvement and "Link" it to this one. Thanks.
        Hide
        Mark Hindess added a comment -

        Lang, I've applied your patch in commit r927214. Please confirm that it has been applied as expected. (For future reference,why try to avoid tabs in Harmony code and prefer 4 tab indentation. Please set your editor accordingly if possible.)

        Show
        Mark Hindess added a comment - Lang, I've applied your patch in commit r927214. Please confirm that it has been applied as expected. (For future reference,why try to avoid tabs in Harmony code and prefer 4 tab indentation. Please set your editor accordingly if possible.)
        Hide
        Lang Yang added a comment -

        Hi guys,

        I have tested those four methods. The results returned are as follow:
        GetReaderFormatNames == ["gif", "GIF", "png", "PNG", "jpeg", "jpg", "JPEG", "JPG"]
        GetReaderMIMETypes == ["image/gif", "image/png", "image/jpeg"]

        GetWriterFormatNames == ["png", "PNG", "jpeg", "jpg", "JPEG", "JPG"]
        GetWriterMIMETypes == ["image/png", "image/jpeg"]

        They seems identical with the registered reader/writer Spis:

        registerServiceProvider(new JPEGImageWriterSpi());
        registerServiceProvider(new JPEGImageReaderSpi());
        registerServiceProvider(new PNGImageReaderSpi());
        registerServiceProvider(new PNGImageWriterSpi());
        registerServiceProvider(new GIFImageReaderSpi());

        Thanks,

        Lang

        Show
        Lang Yang added a comment - Hi guys, I have tested those four methods. The results returned are as follow: GetReaderFormatNames == ["gif", "GIF", "png", "PNG", "jpeg", "jpg", "JPEG", "JPG"] GetReaderMIMETypes == ["image/gif", "image/png", "image/jpeg"] GetWriterFormatNames == ["png", "PNG", "jpeg", "jpg", "JPEG", "JPG"] GetWriterMIMETypes == ["image/png", "image/jpeg"] They seems identical with the registered reader/writer Spis: registerServiceProvider(new JPEGImageWriterSpi()); registerServiceProvider(new JPEGImageReaderSpi()); registerServiceProvider(new PNGImageReaderSpi()); registerServiceProvider(new PNGImageWriterSpi()); registerServiceProvider(new GIFImageReaderSpi()); Thanks, Lang
        Lang Yang made changes -
        Field Original Value New Value
        Attachment HARMONY-6447-yanglang.diff [ 12439701 ]
        Hide
        Lang Yang added a comment -

        Implemented 4 methods:
        javax.imageio.ImageIO.getWriterFormatNames():
        javax.imageio.ImageIO.getWriterMIMETypes():
        javax.imageio.ImageIO.getReaderFormatNames():
        javax.imageio.ImageIO.getReaderMIMETypes():

        Show
        Lang Yang added a comment - Implemented 4 methods: javax.imageio.ImageIO.getWriterFormatNames(): javax.imageio.ImageIO.getWriterMIMETypes(): javax.imageio.ImageIO.getReaderFormatNames(): javax.imageio.ImageIO.getReaderMIMETypes():
        Mark Hindess created issue -

          People

          • Assignee:
            Unassigned
            Reporter:
            Mark Hindess
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:

              Development