Bild erweitern

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Raycluster
Beiträge: 2
Registriert: 19.08.2009 20:16

Bild erweitern

Beitrag von Raycluster »

Schönen guten Abend :)

Ich möchte die Größe eines Bildes verändern, ohne dabei den Inhalt zu skalieren. Ich habe zum Beispiel ein 800x600 Bild mit einem süßen Kätzchen drinnen, und möchte jetzt auf ein 800x800 Bild kommen. Die Katze soll allerdings nicht gestreckt werden, sondern oben und unten soll jeweils ein 100px breiter Farbstreifen entstehen, in dem nur eine Farbe enthalten ist und vertikal zentriert ist dann das Ursprungsbild.

Momentan löse ich das so, dass ich Pixel für Pixel mit Point() die Farbe aus dem Ursprungsbild extrahiere und dann mit Plot() entsprechend versetzt in ein neues Bild einsetze. Das funktioniert auch, allerdings ist das Ganze in der Form kacklangsam und daher unbrauchbar. Gibts eine bessere Methode, um die Zeichenfläche zu erweitern?
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Bild erweitern

Beitrag von STARGÅTE »

Erstelle dein neues Bild und "male" dort dein andere Bild einfach drauf:
Stichwort: Drawing2D:

Code: Alles auswählen

LoadImage(1, "hier den Dateinamen einsetzen")
CreateImage(2, 800, 800)
StartDrawing(ImageOutput(2))
 DrawImage(ImageID(1), 0, 100)
StopDrawing()
schon enthält das Image 2 das Bild von Image 3 prus einen schwarzen Strefen oben und unten ...
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Raycluster
Beiträge: 2
Registriert: 19.08.2009 20:16

Re: Bild erweitern

Beitrag von Raycluster »

Ah super, danke =)
Noch ne kleine Nebenfrage, kann ich die Ausgabequalität des JPEG-Encoders beeinflussen?
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Bild erweitern

Beitrag von STARGÅTE »

Laut Hilfe ja, habs aber nie selber benutzt:
Ergebnis = SaveImage(#Image, DateiName$ [, ImagePlugin [, Flags]])

'Flags' ist ein optionaler Parameter abhängig vom verwendeten Plugin. Zurzeit wird nur die Einstellung der Bildqualität unterstützt: ein Wert von 0 (schlechteste Qualität) bis 10 (maximale Qualität). Nur die JPEG und JPEG 2000 Plugins unterstützen dies derzeit (standardmäßig ist die Qualität auf '7' festgelegt, wenn keine Flags angegeben werden).
Die Quallität gibst du also beim Speichern mit an:

Code: Alles auswählen

SaveImage(2, "MeinBild.jpg" , #PB_ImagePlugin_JPEG, 10)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten