Jump to content

HD Photo Format Plugin for PDN possible?


Recommended Posts

I don't know how popular or feasible it would be, but I just read about MS's new HD Photo format, and I was wondering if it were possible for someone to make a PDN plugin? so far I can't seem to find any programs or PS plugins which support it (except the beta one by MS which doesn't work in PSP), and however Vista's Windows Photo Gallery is supposed to export files, I can't figure out, and I'd like to see for myself if it's worth anything.

MS's Device Porting Kit

HD Photo Feature Spec v1.0

Bill Crow's HD Photo Blog Entry

Wikipedia

Link to comment
Share on other sites

Please, read the sticky at the top:

This forum is reserved for plugin publishing ONLY

Moved to Questions and General Discussion

Edited thread title to be less generic

I am not a mechanism, I am part of the resistance;

I am an organism, an animal, a creature, I am a beast.

~ Becoming the Archetype

Link to comment
Share on other sites

Yes, it's possible. I already have a prototype working. It's a pretty simple matter to use the WIC hooks that WPF provides. The hardest part is determining which subset of codec configuration properties to support.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

The other issue is that Paint.NET needs the ability for a file format plugin to provide a load-time UI. This UI could be for configuration (esp. important for RAW) or for warning (esp. important for HDPhoto's more-than-32 bits-per-pixel formats).

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

Good to hear PDN will support it (since i don't have and want Photoshop). HD Photo standard is completelly open and it looks very promising.

Well I never promised anything. I said I had a prototype.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

Yes but that definition does not contain anything about the "product" actually shipping.

True, but I am sure that there are some people that would be happy with your "working prototype"...

Still friends? :roll:

 

Take responsibility for your own intelligence. 😉 -Rick Brewster

Link to comment
Share on other sites

Yes, it's possible. I already have a prototype working. It's a pretty simple matter to use the WIC hooks that WPF provides. The hardest part is determining which subset of codec configuration properties to support.

That's it Rick, just use complex words in your posts and nobody can argue with you :D

"The greatest thing about the Internet is that you can write anything you want and give it a false source." ~Ezra Pound

twtr | dA | tmblr | yt | fb

Link to comment
Share on other sites

True, but I am sure that there are some people that would be happy with your "working prototype"...

Still friends? :roll:

Well it isn't really a shippable prototype* -- it doesn't have a UI, and there are parts of Paint.NET that need revision in order to make provide first-class HD Photo codec support. I'm not really a fan of shipping something that's, well, half-assed. I think it does more harm than good for something like this.

* By definition you don't ship a prototype -- at least in software, no matter what Webster's says :)

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

That's why we have an Alpha Release :D

Actually for something like the HD Photo support, I was thinking I would release a plugin that simply expired if the version of Paint.NET that was hosting it was, say, 3.10 or higher. That way we would have the plugin available for use and kicking around, and the promise that once 3.10 came around either (1) you'd get a new version of the plugin, or (2) it would just be built-in to Paint.NET.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

Yes, it's possible. I already have a prototype working. It's a pretty simple matter to use the WIC hooks that WPF provides. The hardest part is determining which subset of codec configuration properties to support.

I'd say as much as possible, minus the color depths PDN doesn't support, for now at least.

for one, I'd certainly like to be able to have my alpha channeled PNGs replaced with smaller files once the browser support is in place (other than IE7)

The other issue is that Paint.NET needs the ability for a file format plugin to provide a load-time UI. This UI could be for configuration (esp. important for RAW) or for warning (esp. important for HDPhoto's more-than-32 bits-per-pixel formats).

I know this wouldn't work at all for color depth load warnings, but would it be feasible, until 3.1, to use an effect plugin to set the save options?

Link to comment
Share on other sites

sarreq, There's already the ability for a file type plugin to have a UI for configuring saving. What we don't have yet is the ability to provide a UI to configure loading*, or generally for the loader to be able to ask the user questions ("Do you care that I'm down-converting your 64-bpp image to 32-bpp? Yes/No/Die").

This is something that Evan Olds really wanted for some of his plugins ("which frame of this animated cursor do you want to load?"). Since there was no built-in file type that needed this functionality, I wasn't comfortable adding the capability (it's a very bad idea to add something when you can't verify that it works!).

* Yes you can show UI by calling straight in to the .NET UI stuff, but Paint.NET won't be expecting it and so things might get weird for the plugin author down the road when we do add support. Right now Paint.NET is assuming and asserting that it is in control of the UI for the entire loading and saving processes.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

Good idea. Why don't you do this with all your effect/filetype prototypes? :D:P

1) Because Effects can't work in this way*. An effect cannot 'hide' itself based on its own, dynamic criteria. File types can because they are based on a factory pattern. Instead of looking at a DLL and finding all its file types, I look for its file type factories which then can dynamically provide me with a list of concrete file types based on whatever criteria the plugin author cares about. This criteria is usually just a static list of file type instances. However, this enables scenarios like plugin adaptation whereby maybe you have a "Irfanview plugin adapter" that can take any number of non-Paint.NET plugins and dynamically adapt them all to work with Paint.NET. But it's not like the plugin author wrote 50 adapters: they wrote 1 and then the factory creates 50 instances of the adapter where each on points to a different Irfanview plugin. Make sense?

2) But that's really just a long-winded technical reason. Nothing stops me from putting code in the next 0.01 update to enable this. The real reason we haven't done this for any codecs is ... because we've never published a file type plugin :)

* ... yet

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

I could write a plugin that on an Intel processor does some new fancy wizbang thing and on AMD it does nothing.

Seems to me that anything is possible.

1. Fancy wizbang?

2. I know your joking, but that's basically creating a virus. I'm dealing with a virus that closes apps that display certain words (virus names, anti-spyware/anti-virus software, Google, etc.).

3. I hope your joking...

"The greatest thing about the Internet is that you can write anything you want and give it a false source." ~Ezra Pound

twtr | dA | tmblr | yt | fb

Link to comment
Share on other sites

Right but what you would not be able to do is write a plugin that simply didn't show up on an AMD system.*

* Ok ok I guess that's not entirely true. You could always throw an exception in the constructor for the effect in which case Paint.NET would silently throw it away.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...