From: Jan T. <tus...@ya...> - 2005-09-27 07:39:50
|
Maybe this has been an issue before but I'm wondering if there is (should be) an API for loading/saving FXImages of any supported type by extension. The procedure is very generic and I'm really desperate for a method like static FXImage* FXImage::loadImage(const FXString filename,....); And what about and FXImageDialog class with the popular preview frame attached ? ___________________________________________________________ Was denken Sie über E-Mail? Wir hören auf Ihre Meinung: http://surveylink.yahoo.com/wix/p0379378.aspx |
From: Jeroen v. d. Z. <je...@fo...> - 2005-09-27 13:04:41
|
On Tuesday 27 September 2005 02:40 am, Jan Tusch wrote: > Maybe this has been an issue before but I'm wondering if there is (should be) > an API for loading/saving FXImages of any supported type by extension. > The procedure is very generic and I'm really desperate for a method like > > static FXImage* FXImage::loadImage(const FXString filename,....); You could try: FXIconSource *iconsource=new FXIconSource(app); FXImage *image=iconsource->loadImageFile("file.jpg"); Its used by various FOX widgets internally to load images and icons. Saving is not that big of a problem, as each image type knows how to save itself: FXFileStream fs; fs.open("file.jpg",FXStreamSave); image->savePixels(fs); fs.close(); will save in JPG format if image is of type FXJPGImage; the savePixels() is overloaded to generate the format of the image type. > And what about and FXImageDialog class with the popular preview frame > attached ? Not quite sure what you mean; are you talking about icon/image preview mode in FXFileDialog? We have it, just turn in on... Right-click in file dialog -> View -> Preview Images. Hope this helps, - Jeroen |
From: Jan T. <tus...@ya...> - 2005-09-27 13:43:55
|
> > And what about and FXImageDialog class with the popular preview frame > > attached ? > > Not quite sure what you mean; are you talking about icon/image preview > mode in FXFileDialog? We have it, just turn in on... > > Right-click in file dialog -> View -> Preview Images. What I mean is a dialog class specialized to the supported image files in terms of filter and extension enforcement (suggestion). It's kinda nasty to go through all the "#ifdef HAVE_??_H" stuff to figure which images are supported. I think many apps use imaging and a special Image dialog would be appreciated. Well, the Images know how to save to a stream but what about conversion from one to another supported image type. I would have to check the extension and create a new Image of the appropriate type to save it. This can be done automatically by extension. Speeking only for myself: I would never give a JPEG file a "bmp" extension. ___________________________________________________________ Was denken Sie über E-Mail? Wir hören auf Ihre Meinung: http://surveylink.yahoo.com/wix/p0379378.aspx |
From: Jeroen v. d. Z. <je...@fo...> - 2005-09-27 14:23:31
|
On Tuesday 27 September 2005 08:44 am, Jan Tusch wrote: > > > And what about and FXImageDialog class with the popular preview frame > > > attached ? > > > > Not quite sure what you mean; are you talking about icon/image preview > > mode in FXFileDialog? We have it, just turn in on... > > > > Right-click in file dialog -> View -> Preview Images. > > What I mean is a dialog class specialized to the supported image files in > terms of filter and extension enforcement (suggestion). FXFileDialog already does that; if you switch the filter it changes the suggested extension of the filename you've typed in, if the FXFileDialog is in SELECTFILE_ANY mode. > It's kinda nasty to go through all the "#ifdef HAVE_??_H" stuff to figure > which images are supported. You should use the FX***Image::supported static member variable; this allows testing at runtime. It is better than using #ifdef's because if you're linked to a shared library version of FOX you don't really know what was compiled in until you start your program. - Jeroen |
From: Jan T. <tus...@ya...> - 2005-09-27 14:40:32
|
> > It's kinda nasty to go through all the "#ifdef HAVE_??_H" stuff to figure > > which images are supported. > > You should use the FX***Image::supported static member variable; this > allows testing at runtime. > > It is better than using #ifdef's because if you're linked to a shared > library version of FOX you don't really know what was compiled in until you > start your program. > So what about FOX doing this for me. What is so bad about: FXImage *image=iconsource->loadImageFile("file.jpg"); .... FXImage::saveToFile(image,"file.gif"); instead of checking the extension and create FXGIFImage only for sole storage ? ___________________________________________________________ Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de |
From: Jeroen v. d. Z. <je...@fo...> - 2005-09-27 14:55:24
|
On Tuesday 27 September 2005 09:40 am, Jan Tusch wrote: > > > It's kinda nasty to go through all the "#ifdef HAVE_??_H" stuff to figure > > > which images are supported. > > > > You should use the FX***Image::supported static member variable; this > > allows testing at runtime. > > > > > It is better than using #ifdef's because if you're linked to a shared > > library version of FOX you don't really know what was compiled in until you > > start your program. > > > So what about FOX doing this for me. > What is so bad about: > > FXImage *image=iconsource->loadImageFile("file.jpg"); > .... > FXImage::saveToFile(image,"file.gif"); > > instead of checking the extension and create FXGIFImage only for sole > storage ? Its impossible for FXImage to know how many times it has been subclassed. - Jeroen |
From: Doug H. <bri...@gm...> - 2005-09-27 15:23:45
|
you would need something like wx's system where image handlers are registered, allowing for high level generic processing classes to know what they are allowed to do. They have an InitAllHandlers function that can initialize all supported handlers for you, removing the need to know what support was built-in. Then all processing is limited to only registered image handlers, and custom handlers can be added on by the user. This has the advantage that even the generic loaders/savers work unmodified against user supplied handlers. On 9/27/05, Jeroen van der Zijp <je...@fo...> wrote: > > On Tuesday 27 September 2005 09:40 am, Jan Tusch wrote: > > > > It's kinda nasty to go through all the "#ifdef HAVE_??_H" stuff to > figure > > > > which images are supported. > > > > > > You should use the FX***Image::supported static member variable; this > > > allows testing at runtime. > > > > > > > > It is better than using #ifdef's because if you're linked to a shared > > > library version of FOX you don't really know what was compiled in > until you > > > start your program. > > > > > So what about FOX doing this for me. > > What is so bad about: > > > > FXImage *image=3Diconsource->loadImageFile("file.jpg"); > > .... > > FXImage::saveToFile(image,"file.gif"); > > > > instead of checking the extension and create FXGIFImage only for sole > > storage ? > > Its impossible for FXImage to know how many times it has been subclassed. > > > - Jeroen > > > ------------------------------------------------------- > SF.Net email is sponsored by: > Tame your development challenges with Apache's Geronimo App Server. > Download it for free - -and be entered to win a 42" plasma tv or your ver= y > own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php > _______________________________________________ > Foxgui-users mailing list > Fox...@li... > https://lists.sourceforge.net/lists/listinfo/foxgui-users > |
From: Jan T. <tus...@ya...> - 2005-09-28 08:55:15
|
> > Its impossible for FXImage to know how many times it has been subclassed. > Right. We would need a factory class to dynamically create FXImage instances. Something like a ctor : FXImage::FXImage (FXApp *a, FXIMAGE_IDENTIFIER type, ....); using the factory to create the right instance. the FXIMAGE_IDENTIFIER could be an enum or an extension in the simplest case. The factory could hold a static lookup map indexed by the identifier where image types can register the class associated with the image type. ___________________________________________________________ Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden: http://mail.yahoo.de |