Seite 1 von 2
Kleines Bild in Createimage reinsetzen...
Verfasst: 01.09.2011 10:50
von funkheld
Hallo,ich möchte in CreateImage(0, 320,192) ein Bild reinladen links/oben in die Ecke, welches nur 64x64 Pixel ist.
Wenn ich es so einlade wie unten, dann wird das Image verkleinert auf Bildgrösse.
danke.
Code: Alles auswählen
CreateImage(0, 320,192)
StartDrawing(ImageOutput(0))
LoadImage(0,"logosw.bmp")
StopDrawing()
Re: Kleines Bild in Createimage reinsetzen...
Verfasst: 01.09.2011 11:49
von NicTheQuick
Du erstellst hier ein Bild der Größe 320x192 mit ID 0. Dann lädst du ein Bild und gibst ihm die ID 0. Dadurch wird das erste einfach wieder freigegeben.
Was du tun musst, ist folgendes:
- Bild 0 erstellen
- Bild 1 laden
- Bild 1 in Bild 0 malen
Soweit die Kurzfassung. Mit ein bisschen Durchstöbern der Hilfe kommst du so zu deinem Ergebnis.
Re: Kleines Bild in Createimage reinsetzen...
Verfasst: 01.09.2011 13:42
von Derren
Code: Alles auswählen
CreateImage(0, 320,192)
LoadImage(1,"logosw.bmp")
StartDrawing(ImageOutput(0))
DrawImage(ImageID(1), 0, 0)
StopDrawing()
Re: Kleines Bild in Createimage reinsetzen...
Verfasst: 01.09.2011 14:51
von funkheld
Bild wird nicht reingemalt nach dem Vorschlag.
gruss
Re: Kleines Bild in Createimage reinsetzen...
Verfasst: 01.09.2011 15:07
von Derren
Ein Blick in die Hilfe erklärt auch warum.
Hab's oben editiert.
Echt nervig. Manche Befehle verwenden die eigens vergebene Nummer und andere Befehle brauchen die Image-, Gadget-, WindowID() etc..

Re: Kleines Bild in Createimage reinsetzen...
Verfasst: 01.09.2011 16:45
von funkheld
Jup, danke.
Das hätte ich nicht gefunden.
gruss
Re: Kleines Bild in Createimage reinsetzen...
Verfasst: 01.09.2011 16:57
von STARGÅTE
@Derren:
Das ID-System ist das "echte" System, das vom Betriebssystem festgelegt wird.
Das Nummern-System wurde von PB angelegt, um die Arbeit (nämlich das Nutzen von Indizes) mit Objekten zu vereinfachen.
Das ID-System wird immer dann verwendet, wenn ein Objekt in einer "fremden" Umgebung (Library) genutzt wird:
Image in 2D-Drawing, Image in Gadget, usw.
Das ermöglicht auch das einbinden anderer Ressourcen (eben über die echte ID), die nicht aus PB stammen.
Das Nummern-System gilt nur innerhalb der "eigenen" Umgebung (Library), um mit den Objekte zu Arbeiten:
ImageWidth(), ResizeImage() usw.
Es erleichtern die Benutzung, da man mit festen Konstanten arbeiten kann.
Meiner Meinung nach, wurde dieses Index/Nummern/ID-System in PB super umgesetzt.
Weiterführende Themen:
PureBasic Objekte
Handles und Nummern
Re: Kleines Bild in Createimage reinsetzen...
Verfasst: 01.09.2011 17:06
von CSHW89
@Stargate:
Das stimmt schon, was du sagst, allerdings bin ich auch schon oft selber genug über dieses DrawImage gestolpert. Vielleicht liegts auch daran, dass der Image-Parameter der erste ist. Zum Vergleich: Bei DrawText kommen erst die Koordinaten, dann der Text.
Aber naja, wenn man's einmal weiß, und das Bild nicht angezeigt wird, ist das oft immer die erste Stelle, die man nachgucken sollte
lg Kevin
Re: Kleines Bild in Createimage reinsetzen...
Verfasst: 01.09.2011 17:18
von STARGÅTE
@CSHW89
Naja, Objekte selbst, kommen eigentlich immer an der ersten Position (DrawImage, DisplaySprite, PlayMovie, ...)
Bei DrawText ist Text ja kein Objekt, sondern auch nur ein "normaler" Parameter.
Aber ich gebe dir recht, DrawImage() hört sich schon nach Image-Lib an ... aber es gehört nun mal zur 2D-Drawing-Lib ...
Und ja ich gebe zu, ich habs auch mal übersehen ^^
Re: Kleines Bild in Createimage reinsetzen...
Verfasst: 01.09.2011 17:23
von CSHW89
STARGÅTE hat geschrieben:DisplaySprite, PlayMovie
Tja dort gibst du ja dann auch die PB-ID an, und nicht was mit SpriteID oder so. Ich mein halt nur, PB-ID sind eigentlich immer an erster Stelle, bis auf ganz wenige Ausnahmen (z.b. SplitterGadget #Gadget1und2). Der Umkehrschluss, dass der erste Parameter dann immer eine PB-ID sein muss, ist natürlich falsch, aber es verleitet halt dazu

lg kevin