[Product-Developers] Using PIL in a method of a content type

Espen Moe-Nilssen espen at medialog.no
Wed Aug 12 06:37:14 UTC 2009


You could maybe call the "action" rotate "after the object is created.

There is also a product called "Image Cropping Field" (?) that might  
be worth taking a look at (=to see how pil is used here)

Not too much related, but take a look at Products.Imageeditor, a  
great product




Espen Moe-Nilssen
_______________________________________________

Author of Subskins III , build your own theme for Plone. Try it at:
http://subskins.medialog.no




Den 11. aug. 2009 kl. 23.32 skrev Zdych Lukáš:

> Hi Jan,
>
>     it seems that your issue is that you are trying to call PIL's  
> image object's method "Rotate" on Archetypes ImageField instance  
> which can't work for sure .. but you should have a look at your  
> current ATContentTypes package where these operations are already  
> implemented somewhere in the module: Products.ATContentTypes/ 
> Products/ATContentTypes/lib/imagetransform.py
>
>     Btw: These operations would be accessable easily if you include  
> ATContentTypes.content.image.Image class as one of your's class  
> parent or you can use these transforms directly maybe .. but all  
> that depends on what is your goal.
>
> Kind Regards
>
> Lukas
>
> On Aug 11, 2009, at 11:12 PM, Jan Pokorný wrote:
>
>> Hello,
>>
>> I have a custum content type "SightFolder" with a field "img" of  
>> "image" type. I would like to use some PIL transformations on the  
>> image saved in the image field, so I have added a method into the  
>> content type class. But all my attempts fail.
>>
>> I import PIL as:
>>
>> from PIL import Image
>>
>> A field is defined as:
>>
>>    ImageField(
>>        name='img',
>>        widget=ImageField._properties['widget'](
>>            label="Map",
>>        ),
>>        searchable=0,
>>        required=0,
>>        storage=AnnotationStorage(),
>>    ),
>>
>> A method in the class is defined as:
>>
>>    security.declarePublic('Rotate')
>>    def Rotate(self, img):
>>       out = img.rotate(45)
>>       return out
>>
>> And I try to call it from a template as:
>>
>> <span tal:replace="structure python:context.Rotate(context.img).tag 
>> ()"></span>
>>
>> But i generates the following error:
>>
>> Module Products.PageTemplates.ZRPythonExpr, line 49, in __call__
>>   - __traceback_info__: context.Rotate(context.img).tag()
>>  Module PythonExpr, line 1, in <expression>
>>  Module Products.Sightseeing.SightFolder, line 142, in Rotate
>> AttributeError: rotate
>>
>> Do you have any idea what is wrong? Is there any better way how to  
>> input an image from a field into a method?
>>
>> Thanks a lot for any help in advance.
>>
>> Jan
>>
>>
>>
>>
>> _______________________________________________
>> Product-Developers mailing list
>> Product-Developers at lists.plone.org
>> http://lists.plone.org/mailman/listinfo/product-developers
>
>
> _______________________________________________
> Product-Developers mailing list
> Product-Developers at lists.plone.org
> http://lists.plone.org/mailman/listinfo/product-developers

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.plone.org/pipermail/plone-product-developers/attachments/20090812/f32c8f12/attachment.html>


More information about the Product-Developers mailing list