Seite 1 von 1
Bildgröße in Bytes aus Speicher
Verfasst: Freitag 8. April 2022, 14:14
von PeterL
Hallo Leute,
ich erstelle einen Screenshot, und speichere das Bild als .jpg Datei auf die Festplatte.
Jetzt ist es einfach die Dateigröße in Bytes zurückzugeben. Wen ich z.b 1000 Screenshots erstelle, dauert das speichern zu lange. Und das Abfragen nach der Dateigröße in Bytes auch. Ist es möglich nachdem man einen Screenshot gemacht hat, die Bildgröße in Bytes direkt aus dem Speicher zu laden. Ohne den Screenshot zuerst abzuspeichern.
Ich möchte nur bestimmte Screenshots die eine bestimmte Dateigröße in Bytes haben abspeichern.
Code: Alles auswählen
import pyautogui
im = pyautogui.screenshot(region=(506,752, 91, 90))
im.save(r'C:\Temp\Test.jpg')
Bis die Tage...
Re: Bildgröße in Bytes aus Speicher
Verfasst: Freitag 8. April 2022, 14:37
von sparrow
Ich bin mal so frei dein Unterfangen anzuzweifeln. Wenn du so vorgehst, dann speicherst du ein jpg. Soweit ich weiß ist das ein komprimiertes Dateiformat. Von daher ist die Größe der Datei kein belastbarer Wert.
Ansonsten gibt .screenshot() ein Image aus dem Pillow-Modul zurück. Du solltest dich mit dessen Dokumentation befassen.
Re: Bildgröße in Bytes aus Speicher
Verfasst: Freitag 8. April 2022, 14:45
von __deets__
Das sind Pillow-Image-Objekte, und die koenntest du zB in ein io.BytesIO-Objekt speichern. Und dessen Groesse dann bestimmen.
Allerdings klingt das ganze erstmal ziemlich unglaubwuerdig. Da du nur etwa 60 Screenshots / Sekunde machen kannst, und wiederum diese kleinen Bildausschnitte sehr wenig Speicher als JPG brauchen, ist hier ganz bestimmt nicht die Platten-IO der Flaschenhals. Klingt also wie ueblich nach einem XY-Problem. Was ist also dein wirkliches Anliegen?
Re: Bildgröße in Bytes aus Speicher
Verfasst: Freitag 8. April 2022, 15:00
von PeterL
__deets__ hat geschrieben: Freitag 8. April 2022, 14:45
Das sind Pillow-Image-Objekte, und die koenntest du zB in ein io.BytesIO-Objekt speichern. Und dessen Groesse dann bestimmen.
Da du nur etwa 60 Screenshots / Sekunde machen kannst, ist hier ganz bestimmt nicht die Platten-IO der Flaschenhals. Klingt also wie ueblich nach einem XY-Problem. Was ist also dein wirkliches Anliegen?
Hallo,
ich möchte von Hintergrundbildern die sehr bunt sind, per Zufall an bestimmten Positionen Screenshots machen.
Die Hintergrundbilder sind sehr Farbenfroh. Und dann nur bestimmte Screenshots die eine bestimmte Größe in Bytes haben verwenden, um eine neues Hintergrundbild zu machen. Bei 1000 screenshots ist nur ein Beispiel, dauert das eben lange. Mit dieser Methode kann ich z.b dunkle Bereiche des Bildes ausschließen.
Bis die Tage...
Re: Bildgröße in Bytes aus Speicher
Verfasst: Freitag 8. April 2022, 15:02
von PeterL
sparrow hat geschrieben: Freitag 8. April 2022, 14:37
Wenn du so vorgehst, dann speicherst du ein jpg. Soweit ich weiß ist das ein komprimiertes Dateiformat. Von daher ist die Größe der Datei kein belastbarer Wert.
Ansonsten gibt .screenshot() ein Image aus dem Pillow-Modul zurück. Du solltest dich mit dessen Dokumentation befassen.
Hallo,
das hört sich gut an. Danke das hilft mir weiter.
Bis die Tage...
Re: Bildgröße in Bytes aus Speicher
Verfasst: Freitag 8. April 2022, 15:09
von __deets__
Das klingt danach, als ob du die Bildgroesse als Ersatz fuer Komplexitaet im Bild nimmst. Das wuerde man normalerweise mit Mitteln der OpenCV machen.