Exemple #1
0
def new_image_resize_image_medium(base64_source,
                                  size=(315, 417),
                                  encoding='base64',
                                  filetype=None,
                                  avoid_if_small=False):
    return image_resize_image(base64_source, size, encoding, filetype,
                              avoid_if_small)
Exemple #2
0
def get_record_image_path(record, image, size=(128, 128)):
    """
    :param record: instance of model
    :param image: example: product_id.image
    :param size: example: (128, 128)
    :return: path to image or None if no image
    """
    if not image:
        return None

    temp_folder = tempfile.mkdtemp()
    record_image_path = os.path.join(temp_folder, str(record.id) + ".jpg")
    try:
        record_image = IMG.image_resize_image(image, size)
        record_image = base64.b64decode(record_image)
        with open(record_image_path, "wb") as f:
            f.write(record_image)
            return record_image_path
    except Exception as e:
        logging.error(
            "Error when processing the image for"
            "record: %s: %s",
            record,
            str(e),
        )
        raise e
    return False
    def download_employees(self, mid):
        self = self.browse(mid)
        domain = []
        if (bool(self.dep_do) and bool(self.dep)):
            domain = expression.AND(
                [domain, [('department_id', self.dep_do, self.dep.ids)]])
        if (bool(self.emp_do) and bool(self.emp)):
            domain = expression.AND(
                [domain, [('id', self.emp_do, self.emp.ids)]])

        employees = self.sudo().env['hr.employee'].search(domain)
        return employees.mapped(lambda x: (
            x.id,
            x.name,
            x.barcode,
            image.image_resize_image(x.image),
            x.write_date,
        ))
Exemple #4
0
    def resize_image(self, data, name, default="(128,128)"):
        if data:
            size = self.env['ir.config_parameter'].sudo().get_param(
                name, default=default)
            size = eval(size)

            path_assets = ASSETS_PATH
            img_path = path_assets.replace("/assets", data.url)
            img = Image.open(img_path)
            data_img = open(path_assets.replace("/assets", data.url),
                            "rb").read()
            if not size == img.size:
                data_img = image.image_resize_image(base64.b64encode(data_img),
                                                    size=size)
                data_img = base64.b64decode(data_img)
                # rewrite file name
                dot_files = [".png", ".jpg", ".jpeg", ".gif"]
                data_write = {
                    "name": data.name,
                    "url": data.url,
                    "local_url": data.url
                }
                new_path = img_path
                for d_f in dot_files:
                    if data.name.find(d_f) >= 0:
                        str_replace = "_%s%s" % ("x".join(
                            [str(x) for x in size]), d_f)
                        data_write["name"] = data_write["name"].replace(
                            d_f, str_replace)
                        data_write["url"] = data_write["url"].replace(
                            d_f, str_replace)
                        data_write["local_url"] = data_write[
                            "local_url"].replace(d_f, str_replace)
                        new_path = new_path.replace(d_f, str_replace)
                        break

                # write image
                with open(new_path, "wb") as f:
                    f.write(data_img)
                if not data.is_copy:
                    os.remove(img_path)
                data.write(data_write)
        return True
Exemple #5
0
from odoo.tools import image, base64
from odoo.modules import get_module_resource

image_path = get_module_resource('hr', 'static/src/img', 'default_image.png')
img = image.image_resize_image_big(
    base64.b64encode(open(image_path, 'rb').read()))

resized_image = image.image_resize_image(base64_source=img, size=(500, 500))
'''
@api.depends('partner_id', 'partner_id.image')
def _compute_logo_web(self):
    for company in self:
        company.logo_web = tools.image_resize_image(company.partner_id.image, (180, None))
'''

image.image_resize_images(vals={'some_fields': 1234},
                          sizes={'image': (1024, None)})
'''
    Update ``vals`` with image fields resized as expected.

@api.model_create_multi
def create(self, vals_list):
    for vals in vals_list:
        tools.image_resize_images(vals)
    return super(FleetVehicleModelBrand, self).create(vals_list)
'''

image.image_resize_and_sharpen(image=img, size=(500, 500))

image.image_get_resized_images(base64_source=img)
'''
Exemple #6
0
 def post(self, **kwargs):
     record_model = http.request.env['ws_wharf_parts_record']
     img_model = http.request.env['ws_wharf_parts_img']
     wharf_model = http.request.env['ws_wharf_parts_wharf']
     ship_model = http.request.env['ws_wharf_parts_ship']
     car_model = http.request.env['ws_wharf_parts_car']
     bulk_model = http.request.env['ws_wharf_parts_bulk']
     place_model = http.request.env['ws_wharf_parts_place']
     to_where_model = http.request.env['ws_wharf_parts_to_where']
     time_now = datetime.datetime.now()
     number = int(time.time() * 1000000)
     local = kwargs.get('local')
     wharf = kwargs.get('wharf')
     ship = kwargs.get('ship')
     car = kwargs.get('car')
     bulk = kwargs.get('bulk')
     place = kwargs.get('place')
     to_where = kwargs.get('to_where')
     wharf = wharf_model.sudo().search([('wharf_name', '=', wharf)])
     ship = ship_model.sudo().search([('ship_name', '=', ship)])
     car = car_model.sudo().search([('car_name', '=', car)])
     bulk = bulk_model.sudo().search([('bulk_name', '=', bulk)])
     place = place_model.sudo().search([('place_name', '=', place)])
     to_where = to_where_model.sudo().search([('to_where_name', '=',
                                               to_where)])
     # io账号, 密码, 数据库, UID
     uid = request.session["uid"]
     description = kwargs.get('description')
     vals = {
         'number': number,
         'time': time_now,
         'local': local,
         'wharf': wharf.id,
         'ship': ship.id,
         'car': car.id,
         'bulk': bulk.id,
         'place': place.id,
         'to_where': to_where.id,
         'uid': uid,
         'description': description
     }
     # 通过模型方法insert一条记录
     record_model.sudo().create(vals=vals)
     record = record_model.sudo().search([('number', '=', number)])
     for item in record:
         img_id = item.id
     i = '0'
     end_number = 'A'
     for item in range(9):
         img = kwargs.get('img' + i)
         if img == 'undefined':
             break
         else:
             # 压缩图片
             small_img = image.image_resize_image(img,
                                                  size=(128, 128),
                                                  encoding='base64',
                                                  filetype=None,
                                                  avoid_if_small=False)
             # print str(number)+'A'
             # print "small size:"
             # print image.image_resize_image(img, size=(270, 270), encoding='base64',
             # filetype=None,avoid_if_small=False)
             img_model.sudo().create({
                 'img_id': img_id,
                 'img': img,
                 'img_name': str(number) + end_number,
                 'small_img': small_img
             })
             i = chr(ord(i) + 1)
             end_number = chr(ord(end_number) + 1)
     return http.Response('您已登记', 200)