Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
On 20/11/2013 at 06:35, xxxxxxxx wrote:
I'm creating a new material and importing an external .png file into it. I have all of that working well but I would like to get the DPI of the image that was imported. I don't see anything for c4d.BaseBitmap that allows me to get that info. I see that MultipassBitmap allows you to get the DPI but I'm having trouble getting that to work. Any help or direction is appreciated.
I pulled these lines out of the script that deal with this part.
bmp = c4d.bitmaps.BaseBitmap() if bmp.InitWith(pathToPNGfile)[0] != c4d.IMAGERESULT_OK: gui.MessageDialog("Please choose a valid image format.") return
width, height = bmp.GetSize() #this gives me the dimensions of my .png file but I need to know DPI as well
mbp = c4d.bitmaps.MultipassBitmap.AllocWrapper(bmp) print mbp.GetParameter(8) #I thought this would return the DPI but instead it prints 'None'
On 20/11/2013 at 07:00, xxxxxxxx wrote:
Hi .del,
how do you come to the conclusion that mbp.GetParameter(8) returns the DPI? The documentation states that c4d.MPBTYPE_DPI is the parameter ID associated with the DPI.
import c4d from c4d import gui def main() : path = c4d.storage.LoadDialog() if not path: return bmp = c4d.bitmaps.BaseBitmap() if bmp.InitWith(path)[0] != c4d.IMAGERESULT_OK: gui.MessageDialog("Please choose a valid image format.") return mbp = c4d.bitmaps.MultipassBitmap.AllocWrapper(bmp) print mbp.GetParameter( **c4d.MPBTYPE_DPI** ) main()
PS: Please use the BB code tags for posting your code or give it a monospaced font. It will also make it easier for others if you including a full example script, if possible. (including imports etc. as I did).
Best, -Niklas
On 20/11/2013 at 07:28, xxxxxxxx wrote:
Originally posted by xxxxxxxx Hi .del, how do you come to the conclusion that mbp.GetParameter(8) returns the DPI? The documentation states that c4d.MPBTYPE_DPI is the parameter ID associated with the DPI.
Originally posted by xxxxxxxx
AAARRGGGGHHHH!! I had tried MPBTYPE_DPI but it didn't work. I blew putting the c4d. in front of it. The documentation said the Parameter is an int so when my first attempt didn't work I counted down the list and came up with 8. What can I say, I'm totally new at this and giving it a shot before coming on here.
I appreciate the clarification and the tip on using the code tag.
On 21/11/2013 at 06:03, xxxxxxxx wrote:
The script is working but it always returns 72 regardless of the files actual dpi.
On 26/11/2013 at 06:22, xxxxxxxx wrote:
I can confirm. I'll find out how to read the DPI.
On 05/12/2013 at 08:16, xxxxxxxx wrote:
Reading the DPI when loading an image is not supported with the current state of the API.
On 06/12/2013 at 09:33, xxxxxxxx wrote:
Does the state of the API ever change?
Is this an option in another language? I'm starting to feel like Python in C4D on a Mac isn't quite there yet. I'm working on a relatively short script have already come across two functions in the sdk that don't work. Should I be looking at coffee instead or make the move to C++?
Thanks for your help.