Hi all.,
can anyone tell me how can I compress (reducing image size)binary data before saving it into the postgres. Help me out plzz.
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
Hi all.,
can anyone tell me how can I compress (reducing image size)binary data before saving it into the postgres. Help me out plzz.
Hi,
Here's a simple example of how you can integrate image compression with a button click action in an Odoo model:
from odoo import models, fields, api
from PIL import Image
import io
import base64
class MyModel(models.Model):
_name = 'my.model'
name = fields.Char(string="Name")
image = fields.Binary(string="Image")
@api.multi
def compress_image(self):
for record in self:
try:
img = Image.open(io.BytesIO(base64.b64decode(record.image)))
output_stream = io.BytesIO()
# Compress the image with the specified quality (adjust as needed)
img.save(output_stream, format='JPEG', quality=85)
# Update the image field with the compressed image
record.image = base64.b64encode(output_stream.getvalue())
output_stream.close()
print("Image compression successful!")
except Exception as e:
print(f"An error occurred: {e}")
Make sure to adjust the code according to your specific requirements and the structure of your Odoo module. Additionally, handle error cases and edge scenarios appropriately.
Hope it helps
相关帖文 | 回复 | 查看 | 活动 | |
---|---|---|---|---|
|
2
9月 23
|
7451 | ||
|
2
3月 23
|
46461 | ||
|
2
12月 23
|
57320 | ||
|
0
3月 22
|
2137 | ||
|
0
1月 22
|
2685 |
Hope you are finding this: http://learnopenerp.blogspot.com/2020/07/how-to-resize-image-on-saving-records-in-odoo.html