質問編集履歴
2
わかりにくかった説明を一部修正しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,7 +3,8 @@
|
|
3
3
|
しかし出力後にmacbookのpreviewの「pdfとして書き出す」のメニューから画像のサイズを変更して
|
4
4
|
デフォルトのA4サイズにすると、画質を落とさずにピクセル値が変更できています。またこのときデータ容量は変わっていません。
|
5
5
|
|
6
|
+
後者の処理によって画質を落とさずにサイズを縮小したいのですが
|
6
|
-
|
7
|
+
毎回macのpreviewを開いてこの作業を行うと時間がかかってしまいますので
|
7
8
|
この処理をpython側で行うことはできないでしょうか?
|
8
9
|
|
9
10
|
下記は取り込んだpdfをopencvでresizeしてから出力した場合です
|
1
opencvを用いて画像をresizeした場合のコードを書きました
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
python
|
1
|
+
pythonで画質を落とさないpdfのサイズ変更をしたい
|
body
CHANGED
@@ -1,8 +1,23 @@
|
|
1
|
-
pythonでpdfを出力する際の画像のサイズ(ピクセル数)を変更したい(小さくしたい)のですが
|
1
|
+
pythonでpdfを取り込んでから編集してpdfとして出力する際の画像のサイズ(ピクセル数)を変更したい(小さくしたい)のですが出力前にPILやOpencvでresizeをすると画質が落ちてしまいます。またこのときデータ容量も小さくなります。
|
2
|
-
出力前にPILやOpencvでresizeをすると画質が落ちてしまいます。
|
3
2
|
|
4
3
|
しかし出力後にmacbookのpreviewの「pdfとして書き出す」のメニューから画像のサイズを変更して
|
5
|
-
デフォルトのA4サイズにすると、画質を落とさずにピクセル値が変更できています。
|
4
|
+
デフォルトのA4サイズにすると、画質を落とさずにピクセル値が変更できています。またこのときデータ容量は変わっていません。
|
6
5
|
|
7
6
|
しかし毎回この処理をプレビューを開いて行うと時間がかかってしまいますので
|
8
|
-
この処理をpython側で行うことは
|
7
|
+
この処理をpython側で行うことはできないでしょうか?
|
8
|
+
|
9
|
+
下記は取り込んだpdfをopencvでresizeしてから出力した場合です
|
10
|
+
|
11
|
+
```python
|
12
|
+
from pdf2image import convert_from_path
|
13
|
+
from PIL import Image
|
14
|
+
import cv2
|
15
|
+
import numpy as np
|
16
|
+
|
17
|
+
image = convert_from_path("image.pdf")
|
18
|
+
image = np.array(image)
|
19
|
+
print(image.shape) #(2339,1654,3)
|
20
|
+
image = cv2.resize(image,(841,595))
|
21
|
+
image = Image.fromarray(image)
|
22
|
+
image.save("image.pdf")
|
23
|
+
```
|