We should be exposing the internal function to scripter rather than adding more 
code to scripter. However if that function works it will do the job for now.

Craig



On 26/03/2013, at 3:45, Stefano Danzi <s.danzi at hawai.it> wrote:

> This morning I've had a flash of inspiration and above a function to do 
> "adjust frame to image" using script.
> Function need PIL library. It's soo simple... Maybe a Columbus egg? :-)
> 
> def adjustFrameToImage (obj) :
>      ## Adjust Frame to Image
>      ## First select the frame of the image
> 
>      imagepath=getImageFile(obj)
>      im = Image.open(imagepath)
> 
>      xpix_size, ypix_size = im.size
>      xdpi, ydpi = im.info['dpi']
> 
>      saveUnit = getUnit()
>      setUnit(UNIT_INCHES)
> 
>      xsize = float(xpix_size) / float(xdpi)
>      ysize = float(ypix_size) / float(ydpi)
> 
>      sizeObject( xsize, ysize, obj )
> 
>      #Uncomment to see this info on terminal
>      #print('xpix_size,ypix_size = (%d, %d); xdpi,ydpi = (%d, 
> %d)'%(xpix_size, xpix_size,xdpi, ydpi))
>      #print('X %.10f in, Y %.10f in'%(xsize, ysize))
> 
>      setUnit(saveUnit)
> 
> 
> 
> Il 10/11/2012 17.20, Mark Heieis ha scritto:
>> Greg,
>> 
>> Thanks for the tip. I was thinking about this kind of approach as well, 
>> since I already manage the autorotate to correct for image orientation. I 
>> would just add the frame adjustment at the same time.
>> 
>> Cheers
>> 
>> 
>> On 2012-11-09 17:06, Gregory Pittman wrote:
>>> On 11/09/2012 12:14 PM, Mark Heieis wrote:
>>>> Hello
>>>> 
>>>> Is there a scripting api that mimics the "Adjusts Frame to Image" 
>>>> capability in the UI along the lines of "setScaleImageToFrame()"? So far, 
>>>> I haven't found that functionality in the API documentation. So wondering 
>>>> whether I missed it, it's undocumented or it doesn't exist.
>>> If you look at the versions of Infobox.py that use PIL (Python imaging 
>>> library), this is a trivial thing to accomplish.
>>> 
>>> Using the Image module:
>>> 
>>>                im = Image.open(imageload)
>>>                xsize, ysize = im.size
>>> 
>>> and once you have xsize, ysize you use these to size the frame to the 
>>> image, or use some fraction of each and setScaleImageToFrame().
>>> 
>>> Greg
>>> 
>>> ___
>>> Scribus Mailing List: scribus at lists.scribus.net
>>> Edit your options or unsubscribe:
>>> http://lists.scribus.net/mailman/listinfo/scribus
>>> See also:
>>> http://wiki.scribus.net
>>> http://forums.scribus.net
>> 
>> 
>> ___
>> Scribus Mailing List: scribus at lists.scribus.net
>> Edit your options or unsubscribe:
>> http://lists.scribus.net/mailman/listinfo/scribus
>> See also:
>> http://wiki.scribus.net
>> http://forums.scribus.net
> 
> ___
> Scribus Mailing List: scribus at lists.scribus.net
> Edit your options or unsubscribe:
> http://lists.scribus.net/mailman/listinfo/scribus
> See also:
> http://wiki.scribus.net
> http://forums.scribus.net

Reply via email to