bflim.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:3dstools 作者: ObsidianX 项目源码 文件源码
def load(self, filename):
        bmp = []

        if self.has_cv:
            img = cv2.imread(filename, CV2_READ_ALPHA)

            height, width, channels = img.shape
            if self.swizzle == SWIZZLE_ROT_90:
                img = self._rotate_image(img, -90, width, height)
                height_ = height

                height = width
                width = height_

            elif self.swizzle == SWIZZLE_TRANSPOSE:
                cv2.flip(img, 0, dst=img)
                img = self._rotate_image(img, -90, width, height)
                height_ = height

                height = width
                width = height_

            for y in range(height):
                for x in range(width):
                    # OpenCV keeps a BGRA format internally so swap R and B
                    bgra = list(img[y][x])
                    b = bgra[0]
                    bgra[0] = bgra[2]
                    bgra[2] = b

                    bmp.append(bgra)
        else:
            png_file = open(filename, 'rb')
            reader = png.Reader(file=png_file)
            width, height, pixels, metadata = reader.read()
            png_file.close()

            for row in list(pixels):
                for pixel in range(len(row) / 4):
                    bmp.append(row[pixel * 4:pixel * 4 + 4])

        self.imag = {
            'width': width,
            'height': height,
            'format': FORMAT_RGBA8
        }

        self.order = '>' if self.big_endian else '<'

        self.bmp = self._parse_image_data(bmp, to_bin=True, exact=False)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号