¿Cómo convertir una matriz de imágenes PIL en una cadena de PDF con formato base64?

user253938

Esta función a continuación acepta una cadena JSON de un montón de imágenes codificadas en base64 en su interior. Necesito que esto devuelva un PDF codificado en base64, y lo hace, pero solo me daría una página, la primera imagen dentro de la cadena JSON ... Tengo este código:

import json
import base64
from PIL import Image
from io import BytesIO
import numpy as np
import cv2

class ImageStuff(models.TransientModel):
   _name = 'image.camera_scan'
   _description = 'Do stuff with your images'

    @api.model
    def generate_pdf_from_b64(self, b64_arr_str):
       b64_arr = json.loads(b64_arr_str)
       pil_arr, count, pil0 = [], 0, False
       for blob in b64_arr:
           b64 = blob['b64'].split(',')[1]
           pil = Image.open(BytesIO(base64.b64decode(b64)))
           if count > 0: pil_arr.append(pil)
           else: pil0 = pil
           count += 1

       in_mem_file = BytesIO()

       pil0.save(in_mem_file, format="PDF", resolution=100.0, 
                 save_all=True, append_images=pil_arr) 
                 # I think it's that line above that doesn't work

       in_mem_file.seek(0)
       img_bytes = in_mem_file.read()
       base64_encoded_result_bytes = base64.b64encode(img_bytes)
       b64_str = base64_encoded_result_bytes.decode('ascii')

       return b64_str

Soy un poco novato con Python (estoy seguro de que puedes ver eso en el código). Pero tanto como sea posible, me gustaría evitar el uso de más módulos que no vienen con python 2.7.

Estoy usando la API de Odoo 10.0 con esta cosa, y no puedo usar pip, por lo que es un poco complicado importar nuevos módulos. Aunque, si cree que realmente no hay forma de que pueda hacerlo usando solo PIL, aún agradeceré enormemente la ayuda.

user253938

Funciona bien, simplemente resulta que el módulo PIL de odoo 10 estaba muy desactualizado, solo necesitaba actualizarlo

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

cómo convertir una matriz de imágenes unidimensionales a una imagen PIL en Python

Cómo convertir una matriz de bytes sin firmar a una cadena base64 en ctypes

¿Cómo convertir una matriz de bytes a formato codificado en base64?

Cómo convertir un PDF en una matriz de imágenes, con Carrierwave y MiniMagick (Ruby on Rails)

¿Convertir una secuencia de imágenes axios en una cadena después de codificarla en Base64?

¿Cómo convertir un objeto en una cadena con una cadena de formato?

¿Cómo convertir una cadena en una matriz? como obtengo una matriz pero está en formato de cadena

Cómo convertir una cadena en una matriz de cadena

cómo convertir una cadena de matriz en una matriz

C # Cómo convertir una cadena con símbolos de retorno de carro en una matriz

¿Cómo convertir un PDF de una cadena base64 a un archivo?

Cómo convertir una cadena en una matriz de cadenas?

Cómo convertir una cadena en una lista de matriz

Cómo convertir una cadena en una matriz de estructura

¿Cómo convertir una matriz de caracteres en una cadena?

¿Cómo convertir una matriz de caracteres en una cadena?

¿Cómo convertir una cadena en una matriz de cadenas?

¿Cómo convertir una matriz de entero dentro de una cadena en una matriz de cadena?

¿Cómo convertir un dictado de Python en una cadena con formato de dictado "embellecido"?

Cómo convertir una cadena de valores con un rango a una matriz en Ruby

Oracle: Cómo convertir una cadena en formato de fecha

¿Cómo convertir una cadena a formato de fecha en mecanografiado?

Java: ¿Cómo convertir un archivo de texto con una cadena en formato {i, j}, {i, j}, {i, j} en una matriz bidimensional?

Java: ¿Cómo convertir un archivo de texto con una cadena en formato {i, j}, {i, j}, {i, j} en una matriz bidimensional?

¿Cómo convertir un archivo de imagen a una cadena base64 en flutter?

¿Cómo guardar una lista de imágenes en PDF usando PIL (almohada)?

¿Cómo convertir una cadena Base64 en una imagen de mapa de bits para mostrarla en un ImageView?

¿Cómo convertir un cierto tipo de cadena en una matriz con claves en php?

¿Cómo convertir esta cadena en una matriz de entradas?

TOP Lista

CalienteEtiquetas

Archivo