質問編集履歴

2

わかりにくかった説明を一部修正しました

2019/10/21 22:30

投稿

takatakat
takatakat

スコア5

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,9 @@
8
8
 
9
9
 
10
10
 
11
+ 後者の処理によって画質を落とさずにサイズを縮小したいのですが
12
+
11
- しかし毎回処理プレビューを開いて行うと時間がかかってしまいますので
13
+ 毎回macpreviewを開いてこの作業を行うと時間がかかってしまいますので
12
14
 
13
15
  この処理をpython側で行うことはできないでしょうか?
14
16
 

1

opencvを用いて画像をresizeした場合のコードを書きました

2019/10/21 22:30

投稿

takatakat
takatakat

スコア5

test CHANGED
@@ -1 +1 @@
1
- pythonにおけるpdfサイズ変更につ
1
+ pythonで画質を落とさないpdfサイズ変更をした
test CHANGED
@@ -1,15 +1,45 @@
1
- pythonでpdfを出力する際の画像のサイズ(ピクセル数)を変更したい(小さくしたい)のですが
1
+ pythonでpdfを取り込んでから編集してpdfとして出力する際の画像のサイズ(ピクセル数)を変更したい(小さくしたい)のですが出力前にPILやOpencvでresizeをすると画質が落ちてしまいます。またこのときデータ容量も小さくなります。
2
-
3
- 出力前にPILやOpencvでresizeをすると画質が落ちてしまいます。
4
2
 
5
3
 
6
4
 
7
5
  しかし出力後にmacbookのpreviewの「pdfとして書き出す」のメニューから画像のサイズを変更して
8
6
 
9
- デフォルトのA4サイズにすると、画質を落とさずにピクセル値が変更できています。
7
+ デフォルトのA4サイズにすると、画質を落とさずにピクセル値が変更できています。またこのときデータ容量は変わっていません。
10
8
 
11
9
 
12
10
 
13
11
  しかし毎回この処理をプレビューを開いて行うと時間がかかってしまいますので
14
12
 
15
- この処理をpython側で行うことは可能でしょうか?
13
+ この処理をpython側で行うことはできないでしょうか?
14
+
15
+
16
+
17
+ 下記は取り込んだpdfをopencvでresizeしてから出力した場合です
18
+
19
+
20
+
21
+ ```python
22
+
23
+ from pdf2image import convert_from_path
24
+
25
+ from PIL import Image
26
+
27
+ import cv2
28
+
29
+ import numpy as np
30
+
31
+
32
+
33
+ image = convert_from_path("image.pdf")
34
+
35
+ image = np.array(image)
36
+
37
+ print(image.shape) #(2339,1654,3)
38
+
39
+ image = cv2.resize(image,(841,595))
40
+
41
+ image = Image.fromarray(image)
42
+
43
+ image.save("image.pdf")
44
+
45
+ ```