cdcvd commited on
Commit
c89663f
1 Parent(s): b874e98

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -15
app.py CHANGED
@@ -17,26 +17,57 @@ def trim_whitespace(image):
17
  return trimmed_image
18
 
19
  def convert_pdf_to_images(pdf_path, zoom=2):
20
- pdf_document = fitz.open(pdf_path)
21
- images = []
22
- for page_num in range(len(pdf_document)):
23
- page = pdf_document.load_page(page_num)
24
- matrix = fitz.Matrix(zoom, zoom)
25
- pix = page.get_pixmap(matrix=matrix)
26
- image = Image.frombytes("RGB", [pix.width, pix.height], pix.samples)
27
- trimmed_image = trim_whitespace(image)
28
- images.append(trimmed_image)
 
 
 
 
29
  return images
30
 
31
- def convert_docx_to_images(docx_path):
32
- document = Document(docx_path)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  images = []
34
- for image_shape in document.inline_shapes:
35
- image_stream = image_shape.image.blob
36
- image = Image.open(io.BytesIO(image_stream))
37
- images.append(image)
 
 
 
 
 
 
38
  return images
39
 
 
 
 
 
 
 
 
40
  def remove_background_from_image(image):
41
  return remove(image)
42
 
 
17
  return trimmed_image
18
 
19
  def convert_pdf_to_images(pdf_path, zoom=2):
20
+ try:
21
+
22
+ pdf_document = fitz.open(pdf_path)
23
+ name_with_extension = os.path.basename(pdf_path)
24
+ name = os.path.splitext(name_with_extension)[0]
25
+ images = []
26
+ for page_num in range(len(pdf_document)):
27
+ page = pdf_document.load_page(page_num)
28
+ matrix = fitz.Matrix(zoom, zoom)
29
+ pix = page.get_pixmap(matrix=matrix)
30
+ image = Image.frombytes("RGB", [pix.width, pix.height], pix.samples)
31
+ trimmed_image = trim_whitespace(image)
32
+ images.append(trimmed_image)
33
  return images
34
 
35
+ import os
36
+ from io import BytesIO
37
+ from docx import Document
38
+ from PIL import Image
39
+
40
+ def convert_docx_to_jpeg(docx_bytes):
41
+ """
42
+ Convert each image in a DOCX file to a separate JPEG image and return them as a list.
43
+
44
+ Args:
45
+ - docx_bytes: The binary content of the DOCX file.
46
+
47
+ Returns:
48
+ - A list of PIL Image objects in JPEG format.
49
+ """
50
+ document = Document(BytesIO(docx_bytes))
51
  images = []
52
+
53
+ for rel in document.part.rels.values():
54
+ if "image" in rel.target_ref:
55
+ image_stream = rel.target_part.blob
56
+ image = Image.open(BytesIO(image_stream))
57
+ jpeg_image = BytesIO()
58
+ image.convert('RGB').save(jpeg_image, format="JPEG")
59
+ jpeg_image.seek(0)
60
+ images.append(Image.open(jpeg_image))
61
+
62
  return images
63
 
64
+ # Example usage:
65
+ # with open("example.docx", "rb") as f:
66
+ # docx_bytes = f.read()
67
+ # images = convert_docx_to_jpeg(docx_bytes)
68
+ # for img in images:
69
+ # img.show()
70
+
71
  def remove_background_from_image(image):
72
  return remove(image)
73