On 06/25/2012 12:54 PM, Stefano Danzi wrote: > > Hello!! I'm resurrecting an old post ... > > > > I need to adapt my old scripts for new versions of Scribus and are > all based on this code ... :'( Someone could help me? >
Hi Stefano, your message prompted me to revisit an old problem I had when I enhanced the InfoBox.py script. In what I thought was its best incarnation, it made use of the Python Imaging Library (PIL) to get the dimensions of an image in order to scale the frame size. At some point, it no longer worked to import this library -- the script would hang -- so I took that out and ended up with the much less elegant way it works now, where you need to manually run Adjust Frame to Image after the script ran. I pulled out one of my old versions using PIL and now it WORKS!! As soon as I get it polished up, I'll replace InfoBox.py with this PIL version for svn. In the meantime, here are some pointers: put this at the top of your script; try: from PIL import Image except ImportError: print "Unable to import the Python Imaging Library module." sys.exit(1) Here is how I used the module. After using a file dialog to get an image file name (variable name imageload): im = Image.open(imageload) xsize, ysize = im.size new_height = float(ysize)/float(xsize)*new_width new_image = scribus.createImage(new_left, float(new_top), new_width, float(new_height),framename) scribus.loadImage(imageload, new_image) The first two lines are functions from PIL, with the plan to get the dimensions of the actual image. In InfoBox, we are creating a frame to fill the width of one or more columns of a text frame, so the width is fixed, and we just need to calculate the correct height and make the frame, load the image. After this, then later was the line: scribus.setScaleImageToFrame(1,1,new_image) to scale to your exactly right frame size. For your uses, the calculations may be different, of course, depending on whether you adjust width, height, or both. In a sense here you are adjusting the frame to the image before you even load the image. Greg