如何放大图片字段?

1 投票
3 回答
4089 浏览
提问于 2025-05-10 21:41

资产模块中,我们有一个'asset.asset'字段,里面有'image_medium'。我想把这个图片做得更大一些。下面我把这个字段的大小改成了128px * 128px,但是保存后发现图片变得模糊了。我本来是想让它的像素更高一些。

在这里输入图片描述

相关文章:

  • 暂无相关问题
暂无标签

3 个回答

0

这是一个关于小图、中图和标志类型的例子。

_columns = {
    'brand_id': fields.many2one('model.name', 'Make', required=True),
    'image': fields.related('brand_id', 'image', type="binary", string="Logo"),
    'image_medium': fields.related('brand_id', 'image_medium', type="binary", string="Logo (medium)"),
    'image_small': fields.related('brand_id', 'image_small', type="binary", string="Logo (small)"),
}

对于新的API,你可以使用以下代码:

# image: all image fields are base64 encoded and PIL-supported
image = openerp.fields.Binary("Photo", attachment=True,
    help="This field holds the image used as photo for the employee, limited to 1024x1024px.")
image_medium = openerp.fields.Binary("Medium-sized photo",
    compute='_compute_images', inverse='_inverse_image_medium', store=True, attachment=True,
    help="Medium-sized photo of the employee. It is automatically "\
         "resized as a 128x128px image, with aspect ratio preserved. "\
         "Use this field in form views or some kanban views.")
image_small = openerp.fields.Binary("Small-sized photo",
    compute='_compute_images', inverse='_inverse_image_small', store=True, attachment=True,
    help="Small-sized photo of the employee. It is automatically "\
         "resized as a 64x64px image, with aspect ratio preserved. "\
         "Use this field anywhere a small image is required.")

@api.depends('image')
def _compute_images(self):
    for rec in self:
        rec.image_medium = tools.image_resize_image_medium(rec.image)
        rec.image_small = tools.image_resize_image_small(rec.image)

def _inverse_image_medium(self):
    for rec in self:
        rec.image = tools.image_resize_image_big(rec.image_medium)

def _inverse_image_small(self):
    for rec in self:
        rec.image = tools.image_resize_image_big(rec.image_small)

def _get_default_image(self, cr, uid, context=None):
    image_path = get_module_resource('hr', 'static/src/img', 'default_image.png')
    return tools.image_resize_image_big(open(image_path, 'rb').read().encode('base64'))
1

试试这个

<field name="image"  widget="image" class="oe_right oe_image_custom" style="width: 265px; height: 300px;"/>
3

把字段名 'image_medium' 改成 image 在xml视图里。
去掉类 oe_avatar,然后加上 height="300" width="300",这样应该就可以了。

撰写回答