Seite 1 von 1
Image Auflösung - SaveImage()
Verfasst: 23.01.2021 12:21
von stab
Hallo treue PB-Fans,
Mit dem JPEGImageEncoder speichet PB Bilder ja nur in sehr bescheidenen 96dpi (oder 72dpi, je nach dem, welche Software die Infos ausliest

).
Code: Alles auswählen
UseJPEGImageEncoder()
UseJPEGImageDecoder()
LoadImage(1,"C:\Temp\180x180Bild.jpg")
SaveImage(1,"C:\Temp\180x180Bild_PB.jpg",#PB_ImagePlugin_JPEG)
Gibt es einen Workaround, irgendwelche anderen Bibliotheken oder sonstwas innerhalb PB, womit ich Bilder in höherer Auflösung bearbeiten, speichern kann?
Danke und schönen Gruß
Re: Image Auflösung - SaveImage()
Verfasst: 23.01.2021 13:25
von Bisonte
Irgendwie verstehe ich die Frage nach einer höheren Auflösung nicht...
Mach die Bilder grösser, und du hast es.
Hier eine Erklärung der Begriffe
Re: Image Auflösung - SaveImage()
Verfasst: 23.01.2021 15:33
von ts-soft
Ich denke mal, SaveImage(...) usw. sind wohl die Befehle, die gesucht werden.
https://www.purebasic.com/german/docume ... image.html
Re: Image Auflösung - SaveImage()
Verfasst: 23.01.2021 17:49
von ccode_new
Hallo stab,
was du hier schreibst ist Blödsinn.
Mit dem JPEGImageEncoder speichet PB Bilder ja nur in sehr bescheidenen 96dpi (oder 72dpi, je nach dem, welche Software die Infos ausliest

).
Welches Verständnis von dpi oder ppi hast du?
Viele glauben zu wissen, was es mit dem "dpi"-Wert auf sich hat. Vermutlich die Meisten von Ihnen liegen aber letztlich falsch, weil sie nur über unzureichendes Halbwissen verfügen.
Zudem handelt es sich zumeist um die Auflösung in ppi (Pixel per Inch statt dpi (Dots per Inch) weil es um Pixel geht und nicht um die Ausgabedichte in Druckpunkten, die Drucker und Belichter konstruktionsbedingt nutzen, um Bilder aufs Papier zu bringen.
Das Wichtigste zuerst: Eine Bilddatei bzw. ein Foto hat keinen ppi-Wert!
Jetzt werden Sie womöglich einwenden: "Aber in den Datei-Eigenschaften meiner Fotos steht doch ein dpi-Wert drin!" Das ist ein bedauerlicher, weil sehr irreführender Umstand. Der dort standardmäßig eingetragene Wert ist blanker Unsinn und sollte korrekterweise als "ppi" bezeichnet werden.
Der ppi-Wert bestimmt lediglich die Ausgabegröße eines Bildes in Abhängigkeit von dessen Auflösung in Pixeln. Es handelt sich somit nur um einen rechnerischen Verhältniswert. Der tatsächliche ppi-Wert ergibt sich erst in dem Moment, in dem klar ist, wie groß ein Bild wiedergegeben werden soll.
Quelle:
https://slr-foto.de/dpi_fotodruck.htm
In der PureBasic-Hilfe steht:
Das Limit für die Bildgröße, welche verarbeitet werden kann, hängt vom Betriebssystem und dem verfügbaren Speicher ab. Wenn genügend Speicher verfügbar ist, dann können von allen von PureBasic unterstützten Betriebssystemen Bilder bis mindestens 8192x8192 Pixel verarbeitet werden.
Quelle: PB-Hilfe: LoadImage()
Und hier ein Beispiel:
Hier einmal eine sehr große Bilddatei:
Code: Alles auswählen
UseJPEGImageDecoder()
UseJPEGImageEncoder()
#BildBreite = 9000
#BildHoehe = 9000
If OpenWindow(0, 100, 100, 500, 300, "BigImage")
; If CreateImage(0, #BildBreite, #BildHoehe, 32)
; StartDrawing(ImageOutput(0))
; For k=0 To OutputWidth() Step 20
; FrontColor(RGB(Random(255),Random(255), Random(255)))
; Box(0, k, OutputWidth(), 20)
; Next
; StopDrawing()
; EndIf
LoadImage(1, GetCurrentDirectory()+"Big8000.jpg")
;SaveImage(0, GetCurrentDirectory()+"BigImage.jpg", #PB_ImagePlugin_JPEG, 10, 32)
SaveImage(1, GetCurrentDirectory()+"BigImage.jpg", #PB_ImagePlugin_JPEG, 10, 32)
;ResizeImage(0, WindowWidth(0), WindowHeight(0))
ResizeImage(1, WindowWidth(0), WindowHeight(0))
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_Repaint
StartDrawing(WindowOutput(0))
;DrawImage(ImageID(0), 0, 0)
DrawImage(ImageID(1), 0, 0)
StopDrawing()
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
End
Re: Image Auflösung - SaveImage()
Verfasst: 25.01.2021 12:02
von stab
1. Entschuldigung für den Blödsinn.
2. Danke, habe ich was dazu gerlernt.
VG stab
Re: Image Auflösung - SaveImage()
Verfasst: 25.01.2021 13:41
von mk-soft
Ich finde die Frage nicht blödsinnig.
Beim laden eines JPEG Bildes werden diese aus dem Informationen der Aufnahmengröße berechnet und geladen.
Wir können aber nicht eine andere Größe wählen und somit keinen optimierten Down- oder UpScale algorithmus aus dem JPEG Daten verwenden.
Re: Image Auflösung - SaveImage()
Verfasst: 25.01.2021 17:40
von ccode_new
Natürlich ist die Frage Blödsinn.
Dies hat stab ja sogar bestätigt.
Wir können aber nicht eine andere Größe wählen und somit keinen optimierten Down- oder UpScale algorithmus aus dem JPEG Daten verwenden.
@mk-soft
Hier bitte ich um genauere Erklärung deinerseits.
Re: Image Auflösung - SaveImage()
Verfasst: 26.01.2021 11:45
von Velindos
Hallo Leute,
Danke für die gut Erklärung!
Stelle selbst schon seit 10 Jahren blöde Fragen, kein Wunder bei diesen Windows!
Gruss ... Velindos!