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
Betriebssysteme: div. Windows, Linux, Unix - Systeme
no Keyboard, press any key
no mouse, you need a cat