Canvasgröße an Bildgröße anpassen
Übersicht

![]() |
PebenderBetreff: Canvasgröße an Bildgröße anpassen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
wie in der Überschrift ersichtlich möchte ich das Canvas an die errechnete Bildgröße anpassen. Habe dazu ein Bildgeladen, die Größe an das Canvas angepasst. Nun ist es halt so, das ein Bild, das nicht das komplette Canvas ausfüllt,im Hintergrund schwarz ist. ich hatte es so probiert: Code: [AUSKLAPPEN] GadgetHeight(vorlage) = faktor_h# 'Canvas an Bildhöhe anpassen
GadgetWidth(vorlage) = faktor_b# 'Canvas an Bildbreite anpassen nun bekomme ich folgende Fehlermeldung: Compile Error Expression must be a Variable. Wobei faktor_h# und faktor_b# als global deklariert sind. Oder kann es daran liegen, das es eine Fließkommazahl ist ?? Wenn ja, wie wandele ich eine Fließkommazahl in den nächsten Integer um mfg Peter |
||
BMax & MaxGUI |
![]() |
Ana |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du machst hier einen grundsätzlichen Fehler.
Das L Value, also die linke Seite einer Zuweisung, muss nach Definition eine einzelne Variable, genauer gesagt die Referenz auf eine Speicherstelle sein, statt dessen rufst du eine Funktion auf, die dir einen Wert gibt, der aber nirgendwo als Variable gespeichert wird und damit kannst du ihm auch nichts sinnvoll zuweisen. Damit hast du ein ungültiges LValue und hier ist das Problem. Versuchs mal mit irgendwas in richtung SetGadgetHeight(Gadget,Height) oder sowas. |
||
Don't only practice your art,
but force your way into its secrets, for it and knowledge can raise human to divine |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Funktion heißt SetGadgetShape. Mit ihr kannst du Position und Größe eines Gadgets ändern.
BlitzMax: [AUSKLAPPEN] Local canvas:TGadget=CreateCanvas(10, 10, 400, 300, window) ' x=10, y=10, w=400, h=300 Wenn du nur die Größe ändern willst musst du die Position mit GadgetX bzw. GadgetY erfragen. mfg Thunder |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
Pebender |
![]() Antworten mit Zitat ![]() |
---|---|---|
hallo Thunder,
das funktioniert zwar, das das Canvas die Größe des Bildes annimmt, aber das geladenen Bild blitzt nur kurz auf und dann ist das Canvas wieder schwarz: Code: [AUSKLAPPEN] as$=RequestFile("Öffnen","*,jpg,png,bmp") 'Bilddatei laden
datei=LoadImage(as$) 'Datei laden Notify as$ a#=ImageHeight(datei) 'Bildhöhe auslesen b#=ImageWidth(datei) 'Bildbreite auslesen bild_b# = 300 / b# 'Faktor für die Bildbreite bild_h# = 300 / a# 'Faktor für die Bildhöhe faktor_b# = b# * bild_b# 'errechnete Bildbreite für Canvasfeld faktor_h# = a# * bild_b# 'errechnete Bildhöhe für Canvas SetGadgetShape vorlage, 490, 20, faktor_b#, faktor_h# DrawImageRect(datei,0,0,faktor_b#,faktor_h#) 'Bild zeichnen Flip und wenn ich die Farbe des Canvases mit SetGadgetColor ändern will, passiert auch nichts. mfg Peter |
||
BMax & MaxGUI |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zeichnest du denn das Bild auch bei Auftreten jedes EVENT_GADGETPAINT wieder neu? Ein Canvas kann man afaik nicht mit SetGadgetColor einfärben. Da müsstest du dann mit SetClsColor + Cls arbeiten. | ||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
Pebender |
![]() Antworten mit Zitat ![]() |
---|---|---|
so habs jetzt raus, muß so aussehen:
Code: [AUSKLAPPEN] as$=RequestFile("Öffnen","*,jpg,png,bmp") 'Bilddatei laden
datei=LoadImage(as$) 'Datei laden Notify as$ a#=ImageHeight(datei) 'Bildhöhe auslesen b#=ImageWidth(datei) 'Bildbreite auslesen bild_b# = 300 / b# 'Faktor für die Bildbreite bild_h# = 300 / a# 'Faktor für die Bildhöhe faktor_b# = b# * bild_b# 'errechnete Bildbreite für Canvasfeld faktor_h# = a# * bild_b# 'errechnete Bildhöhe für Canvas DrawImageRect(datei,0,0,faktor_b#,faktor_h#) 'Bild zeichnen SetGadgetShape (vorlage:TGadget, 490, 20, faktor_b#, faktor_h#) Flip mfg Peter |
||
BMax & MaxGUI |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group