我们从Python开源项目中,提取了以下49个代码示例,用于说明如何使用PIL.Image.core()。
def load(self, im): im.fp.seek(0) # rewind return Image.frombytes( "RGB", im.size, Image.core.drawwmf(im.fp.read(), im.size, self.bbox), "raw", "BGR", (im.size[0]*3 + 3) & -4, -1 )
def crc(self, cid, data): "Read and verify checksum" # Skip CRC checks for ancillary chunks if allowed to load truncated images # 5th byte of first char is 1 [specs, section 5.4] if ImageFile.LOAD_TRUNCATED_IMAGES and (i8(cid[0]) >> 5 & 1): self.crc_skip(cid, data) return try: crc1 = Image.core.crc32(data, Image.core.crc32(cid)) crc2 = i16(self.fp.read(2)), i16(self.fp.read(2)) if crc1 != crc2: raise SyntaxError("broken PNG file (bad header checksum in %s)" % cid) except struct.error: raise SyntaxError("broken PNG file (incomplete checksum in %s)" % cid)
def raise_ioerror(error): try: message = Image.core.getcodecstatus(error) except AttributeError: message = ERRORS.get(error) if not message: message = "decoder error %d" % error raise IOError(message + " when reading image file") # # -------------------------------------------------------------------- # Helpers
def load_prepare(self): # create image memory if necessary if not self.im or\ self.im.mode != self.mode or self.im.size != self.size: self.im = Image.core.new(self.mode, self.size) # create palette (optional) if self.mode == "P": Image.Image.load(self)
def check_codec(feature): if feature not in codecs: raise ValueError("Unknown codec %s" % feature) codec = codecs[feature] return codec + "_encoder" in dir(Image.core)
def __init__(self, fp): self.fp = fp self.queue = [] if not hasattr(Image.core, "crc32"): self.crc = self.crc_skip
def putchunk(fp, cid, *data): "Write a PNG chunk (including CRC field)" data = b"".join(data) fp.write(o32(len(data)) + cid) fp.write(data) hi, lo = Image.core.crc32(data, Image.core.crc32(cid)) fp.write(o16(hi) + o16(lo))
def getchunks(im, **params): """Return a list of PNG chunks representing this image.""" class collector(object): data = [] def write(self, data): pass def append(self, chunk): self.data.append(chunk) def append(fp, cid, *data): data = b"".join(data) hi, lo = Image.core.crc32(data, Image.core.crc32(cid)) crc = o16(hi) + o16(lo) fp.append((cid, data, crc)) fp = collector() try: im.encoderinfo = params _save(im, fp, None, append) finally: del im.encoderinfo return fp.data # -------------------------------------------------------------------- # Registry