def on_image_ready(self, buffer): self.watermark_engine.load(buffer, self.extension) self.watermark_engine.enable_alpha() mode, data = self.watermark_engine.image_data_as_rgb() imgdata = _alpha.apply(mode, self.alpha, data) self.watermark_engine.set_image_data(imgdata) inv_x = self.x[0] == '-' inv_y = self.y[0] == '-' x, y = int(self.x), int(self.y) sz = self.engine.size watermark_sz = self.watermark_engine.size if inv_x: x = (sz[0] - watermark_sz[0]) + x if inv_y: y = (sz[1] - watermark_sz[1]) + y self.engine.paste(self.watermark_engine, (x, y), merge=True) self.callback()
def on_image_ready(self, buffer): self.watermark_engine.load(buffer, self.extension) imgdata = _alpha.apply(self.watermark_engine.get_image_mode(), int(self.params['alpha']), self.watermark_engine.get_image_data()) self.watermark_engine.set_image_data(imgdata) inv_x = self.params['x'][0] == '-' inv_y = self.params['y'][0] == '-' x, y = int(self.params['x']), int(self.params['y']) sz = self.engine.size watermark_sz = self.watermark_engine.size if inv_x: x = (sz[0] - watermark_sz[0]) + x if inv_y: y = (sz[1] - watermark_sz[1]) + y self.engine.paste(self.watermark_engine, (x, y)) self.callback()
def on_image_ready(self, buffer): self.watermark_engine.load(buffer, self.extension) self.watermark_engine.enable_alpha() imgdata = _alpha.apply( self.watermark_engine.get_image_mode(), self.alpha, self.watermark_engine.get_image_data() ) self.watermark_engine.set_image_data(imgdata) inv_x = self.x[0] == "-" inv_y = self.y[0] == "-" x, y = int(self.x), int(self.y) sz = self.engine.size watermark_sz = self.watermark_engine.size if inv_x: x = (sz[0] - watermark_sz[0]) + x if inv_y: y = (sz[1] - watermark_sz[1]) + y self.engine.paste(self.watermark_engine, (x, y)) self.callback()
def on_image_ready(self, buffer): self.watermark_engine.load(buffer, None) self.watermark_engine.enable_alpha() mode, data = self.watermark_engine.image_data_as_rgb() imgdata = _alpha.apply(mode, self.alpha, data) self.watermark_engine.set_image_data(imgdata) sz = self.engine.size watermark_sz = self.watermark_engine.size if self.w_ratio or self.h_ratio: watermark_sz = self.calc_watermark_size(sz, watermark_sz, self.w_ratio, self.h_ratio) self.watermark_engine.resize(watermark_sz[0], watermark_sz[1]) self.x = self.detect_and_get_ratio_position(self.x, sz[0]) self.y = self.detect_and_get_ratio_position(self.y, sz[1]) mos_x = self.x == 'repeat' mos_y = self.y == 'repeat' center_x = self.x == 'center' center_y = self.y == 'center' if not center_x and not mos_x: inv_x = self.x[0] == '-' x = int(self.x) if not center_y and not mos_y: inv_y = self.y[0] == '-' y = int(self.y) if not mos_x: repeat_x = (1, 0) if center_x: x = (sz[0] - watermark_sz[0]) / 2 elif inv_x: x = (sz[0] - watermark_sz[0]) + x else: repeat_x = divmod(sz[0], watermark_sz[0]) if sz[0] * 1.0 / watermark_sz[0] < 2: repeat_x = (math.ceil(sz[0] * 1.0 / watermark_sz[0]), 10) space_x = 10 if not mos_y: repeat_y = (1, 0) if center_y: y = (sz[1] - watermark_sz[1]) / 2 elif inv_y: y = (sz[1] - watermark_sz[1]) + y else: repeat_y = divmod(sz[1], watermark_sz[1]) if sz[1] * 1.0 / watermark_sz[1] < 2: repeat_y = (math.ceil(sz[1] * 1.0 / watermark_sz[1]), 10) space_y = 10 if not mos_x and not mos_y: self.engine.paste(self.watermark_engine, (x, y), merge=True) elif mos_x and mos_y: if (repeat_x[0] * repeat_y[0]) > 100: tmpRepeatX = min(6, repeat_x[0]) tmpRepeatY = min(6, repeat_y[0]) repeat_x = (tmpRepeatX, sz[0] - tmpRepeatX * watermark_sz[0]) repeat_y = (tmpRepeatY, sz[1] - tmpRepeatY * watermark_sz[1]) space_x = repeat_x[1] / (max(repeat_x[0], 2) - 1) space_y = repeat_y[1] / (max(repeat_y[0], 2) - 1) for i in range(int(repeat_x[0])): x = i * space_x + i * watermark_sz[0] for j in range(int(repeat_y[0])): y = j * space_y + j * watermark_sz[1] self.engine.paste(self.watermark_engine, (x, y), merge=True) elif mos_x: space_x = repeat_x[1] / (max(repeat_x[0], 2) - 1) for i in range(int(repeat_x[0])): x = i * space_x + i * watermark_sz[0] self.engine.paste(self.watermark_engine, (x, y), merge=True) else: space_y = repeat_y[1] / (max(repeat_y[0], 2) - 1) for j in range(int(repeat_y[0])): y = j * space_y + j * watermark_sz[1] self.engine.paste(self.watermark_engine, (x, y), merge=True) self.callback()
def on_image_ready(self, buffer): self.watermark_engine.load(buffer, self.extension) self.watermark_engine.enable_alpha() mode, data = self.watermark_engine.image_data_as_rgb() imgdata = _alpha.apply(mode, self.alpha, data) self.watermark_engine.set_image_data(imgdata) mos_x = self.x == 'repeat' mos_y = self.y == 'repeat' center_x = self.x == 'center' center_y = self.y == 'center' if not center_x and not mos_x: inv_x = self.x[0] == '-' x = int(self.x) if not center_y and not mos_y: inv_y = self.y[0] == '-' y = int(self.y) sz = self.engine.size watermark_sz = self.watermark_engine.size if not mos_x: repeat_x = (1, 0) if center_x: x = (sz[0] - watermark_sz[0])/2 elif inv_x: x = (sz[0] - watermark_sz[0]) + x else: repeat_x = divmod(sz[0], watermark_sz[0]) if sz[0] * 1.0 / watermark_sz[0] < 2: repeat_x = (math.ceil(sz[0] * 1.0 / watermark_sz[0]), 10) space_x = 10 if not mos_y: repeat_y = (1, 0) if center_y: y = (sz[1] - watermark_sz[1])/2 elif inv_y: y = (sz[1] - watermark_sz[1]) + y else: repeat_y = divmod(sz[1], watermark_sz[1]) if sz[1] * 1.0 / watermark_sz[1] < 2: repeat_y = (math.ceil(sz[1] * 1.0 / watermark_sz[1]), 10) space_y = 10 if not mos_x and not mos_y: self.engine.paste(self.watermark_engine, (x, y), merge=True) elif mos_x and mos_y: if (repeat_x[0] * repeat_y[0]) > 100: tmpRepeatX = min(6, repeat_x[0]) tmpRepeatY = min(6, repeat_y[0]) repeat_x = (tmpRepeatX, sz[0] - tmpRepeatX * watermark_sz[0]) repeat_y = (tmpRepeatY, sz[1] - tmpRepeatY * watermark_sz[1]) space_x = repeat_x[1] / (max(repeat_x[0], 2) - 1) space_y = repeat_y[1] / (max(repeat_y[0], 2) - 1) for i in range(int(repeat_x[0])): x = i * space_x + i * watermark_sz[0] for j in range(int(repeat_y[0])): y = j * space_y + j * watermark_sz[1] self.engine.paste(self.watermark_engine, (x, y), merge=True) elif mos_x: space_x = repeat_x[1] / (max(repeat_x[0], 2) - 1) for i in range(int(repeat_x[0])): x = i * space_x + i * watermark_sz[0] self.engine.paste(self.watermark_engine, (x, y), merge=True) else: space_y = repeat_y[1] / (max(repeat_y[0], 2) - 1) for j in range(int(repeat_y[0])): y = j * space_y + j * watermark_sz[1] self.engine.paste(self.watermark_engine, (x, y), merge=True) self.callback()
def on_image_ready( # pylint: disable=too-many-statements,too-many-branches,too-many-locals self, buffer): self.watermark_engine.load(buffer, None) self.watermark_engine.enable_alpha() mode, data = self.watermark_engine.image_data_as_rgb() imgdata = _alpha.apply(mode, self.alpha, data) self.watermark_engine.set_image_data(imgdata) image_size = self.engine.size watermark_sz = self.watermark_engine.size if self.w_ratio or self.h_ratio: watermark_sz = self.calc_watermark_size(image_size, watermark_sz, self.w_ratio, self.h_ratio) self.watermark_engine.resize(watermark_sz[0], watermark_sz[1]) self.x = self.detect_and_get_ratio_position(self.x, image_size[0]) self.y = self.detect_and_get_ratio_position(self.y, image_size[1]) mos_x = self.x == "repeat" mos_y = self.y == "repeat" center_x = self.x == "center" center_y = self.y == "center" if not center_x and not mos_x: inv_x = self.x[0] == "-" x = int(self.x) if not center_y and not mos_y: inv_y = self.y[0] == "-" y = int(self.y) if not mos_x: repeat_x = (1, 0) if center_x: x = int((image_size[0] - watermark_sz[0]) / 2) elif inv_x: x = int((image_size[0] - watermark_sz[0]) + x) else: repeat_x = divmod(image_size[0], watermark_sz[0]) if image_size[0] * 1.0 / watermark_sz[0] < 2: repeat_x = ( math.ceil(image_size[0] * 1.0 / watermark_sz[0]), 10, ) space_x = 10 if not mos_y: repeat_y = (1, 0) if center_y: y = int((image_size[1] - watermark_sz[1]) / 2) elif inv_y: y = int((image_size[1] - watermark_sz[1]) + y) else: repeat_y = divmod(image_size[1], watermark_sz[1]) if image_size[1] * 1.0 / watermark_sz[1] < 2: repeat_y = ( math.ceil(image_size[1] * 1.0 / watermark_sz[1]), 10, ) space_y = 10 if not mos_x and not mos_y: self.engine.paste(self.watermark_engine, (x, y), merge=True) elif mos_x and mos_y: if (repeat_x[0] * repeat_y[0]) > 100: tmpRepeatX = min(6, repeat_x[0]) tmpRepeatY = min(6, repeat_y[0]) repeat_x = ( tmpRepeatX, image_size[0] - tmpRepeatX * watermark_sz[0], ) repeat_y = ( tmpRepeatY, image_size[1] - tmpRepeatY * watermark_sz[1], ) space_x = repeat_x[1] // (max(repeat_x[0], 2) - 1) space_y = repeat_y[1] // (max(repeat_y[0], 2) - 1) for i in range(int(repeat_x[0])): x = i * space_x + i * watermark_sz[0] for j in range(int(repeat_y[0])): y = j * space_y + j * watermark_sz[1] self.engine.paste(self.watermark_engine, (x, y), merge=True) elif mos_x: space_x = repeat_x[1] // (max(repeat_x[0], 2) - 1) for i in range(int(repeat_x[0])): x = i * space_x + i * watermark_sz[0] self.engine.paste(self.watermark_engine, (x, y), merge=True) else: space_y = repeat_y[1] // (max(repeat_y[0], 2) - 1) for j in range(int(repeat_y[0])): y = j * space_y + j * watermark_sz[1] self.engine.paste(self.watermark_engine, (x, y), merge=True)