Image Auflösung - SaveImage()

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
stab
Beiträge: 92
Registriert: 24.02.2006 16:09
Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Wohnort: Hardt
Kontaktdaten:

Image Auflösung - SaveImage()

Beitrag 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ß
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."

Wer lügt hier wirklich und wer sagt die Wahrheit?

_________________________________________

286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Benutzeravatar
Bisonte
Beiträge: 2427
Registriert: 01.04.2007 20:18

Re: Image Auflösung - SaveImage()

Beitrag 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
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Image Auflösung - SaveImage()

Beitrag von ts-soft »

Ich denke mal, SaveImage(...) usw. sind wohl die Befehle, die gesucht werden.
https://www.purebasic.com/german/docume ... image.html
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Image Auflösung - SaveImage()

Beitrag 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:
Bild

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
Benutzeravatar
stab
Beiträge: 92
Registriert: 24.02.2006 16:09
Computerausstattung: 286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Wohnort: Hardt
Kontaktdaten:

Re: Image Auflösung - SaveImage()

Beitrag von stab »

1. Entschuldigung für den Blödsinn.
2. Danke, habe ich was dazu gerlernt.

VG stab
Paul sagt: "Max lügt."
Max sagt: "Otto lügt."
Otto sagt: "Max und Paul lügen."

Wer lügt hier wirklich und wer sagt die Wahrheit?

_________________________________________

286er Big Tower; 16MHz; 1MB Ram; 40MB Festplatte, 5 1/4" und 3 1/2" Diskettenlaufwerk; VGA Farbmonitor 14"; Windows 3.1; PureBasic 0.5
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Image Auflösung - SaveImage()

Beitrag 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.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Image Auflösung - SaveImage()

Beitrag 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.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: Image Auflösung - SaveImage()

Beitrag 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!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Antworten