2016-07-14 23 views
0

Ich habe einen Scanner, wenn ich die Seite scanne, macht es eine BMP-Datei, aber die Größe pro Seite beträgt 50MB. Wie sage ich Python, machen Sie es JPEG und kleine Größe.Python - wie man BMP in JPEG oder PDF macht? so dass die Dateigröße nicht 50 MB ist, aber weniger?

rv = ss.XferImageNatively() 
if rv: 
(handle, count) = rv 
twain.DIBToBMFile(handle,'imageName.bmp') 

Wie sagen Sie ihm, es JPEG oder PDF zu machen? (Native Übertragungen sind immer unkomprimierte Bilder. Ihre Bildgröße ist also: (Breite in Zoll * dpi) * (Höhe in Zoll * dpi) * Byte pro Pixel)

Antwort

3

Sie können etwas verwenden wie PIL (http://www.pythonware.com/products/pil/) oder Pillow (https://github.com/python-pillow/Pillow), die die Datei in dem Format speichern, das Sie basierend auf dem Dateinamen angeben.

Das Python-TWAIN-Modul gibt die Bitmap aus DIBToBMFile als Zeichenfolge zurück, wenn kein Dateiname angegeben ist, sodass Sie diese Zeichenfolge in eine der Bildbibliotheken als Puffer einspeisen können. Andernfalls können Sie einfach in eine Datei speichern, diese Datei dann öffnen und erneut speichern, aber das ist eine ziemlich umständliche Art, Dinge zu tun.

EDIT: siehe (faul Modus)

from PIL import Image 
img = Image.open('C:/Python27/image.bmp') 
new_img = img.resize((256, 256)) 
new_img.save('C:/Python27/image.png', 'png') 

Ausgang:

enter image description here

+1

Siehe EDIT Abschnitt, Post immer Beispielcode bitte, es für andere Nutzer besser für einige Jahre bleiben die ein ähnliches Problem in der Forschung und Entwicklung haben. Vielen Dank – YumYumYum

+0

Nun, diese akzeptierte Antwort war, was mich über die Linie fuhr, in der Lage zu kommentieren, so: Danke, wird von nun an Code schreiben! :) – qDot