LoadDialog - restricting what users can choose
On 13/11/2013 at 07:29, xxxxxxxx wrote:
I'm trying to load a bitmap file to use in a material. What do the flags for the c4d.Storage.LoadDialog do? Reading the documentation I was under the impression that it would restrict the users selection to the flag. Do I have to test to see if the user chose an image using another method?
fn = c4d.storage.LoadDialog(c4d.FILESELECTTYPE_IMAGES)
thanks for any advice.
On 13/11/2013 at 07:53, xxxxxxxx wrote:
technically any file can be an image file. If you really want to make sure a file is actually a bitmap, you
can load it before assigning to a material and see if it loaded successfully. See BaseBitmap.InitWith().
I can't confirm it for Windows now, but the type parameter to the LoadDialog() function does not seem
to have an affect on Mac OS. You're better of performing a check if necessary.
On 13/11/2013 at 08:05, xxxxxxxx wrote:
Thanks Niklas. I'm heading down that path right now. Any ideas how to make a file path relative? Do I need to pull the filename out of the path or is there a function lurking some where? Our project files get moved around on occasion and I want to be sure the texture paths are relative.
On 13/11/2013 at 08:14, xxxxxxxx wrote:
The os.path module contains functions for working with filesystem paths. Using os.path.relpath, you can
make one path relative to another path (assuming the path is contained in the specified directory).
> path = c4d.storage.LoadDialog()
> if not path: return
> path = os.path.relpath(path, doc.GetDocumentPath())
On 13/11/2013 at 08:21, xxxxxxxx wrote:
Thanks again. I'm new at Python and have been working mainly with the c4d documentation. I have a python book and will check that out for more info on the os.path.