rotiertes bild speichern

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

girgl

Betreff: rotiertes bild speichern

BeitragFr, Jan 16, 2004 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
servus,ich will,dass sich mein bild um 360 grad drehen kann.Wie mach ich da sjetz,dass ich ein mittels createimage erzeugtes bild in allen gradwinkeln speicher.Ich weiss,dass ichn dim feld brauch und rotateimage aber irgendwie klappt sbei mir net

bruZard

BeitragFr, Jan 16, 2004 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

bild=LoadImage("Bild.bmp")
count=0
For i#=0.0 To 360.0
  RotateImage(bild,i#)
  SaveBuffer(ImageBuffer(bild),"bild_rot"+Str(count)+".bmp")
  count=count+1
Next

Habe das jetzt nicht getestet ... meinst Du sowas?
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image
 

girgl

BeitragFr, Jan 16, 2004 17:31
Antworten mit Zitat
Benutzer-Profile anzeigen
nee sowas mein ich net,ich mein,dass ma das so wie bei inpacs gta tutorial nur da sma das bild selbst erstellt.Hab da smit copyimage gemacht,ging aber irgendwie nix
 

konstantin

BeitragFr, Jan 16, 2004 17:46
Antworten mit Zitat
Benutzer-Profile anzeigen
bruZard: SaveImage ginge auch. und die Floats sind überflüssig. Speicherverschwendung.
girgl: Das was bruZard da zeigt, ist doch genau das was du auch brauchst...
 

girgl

BeitragFr, Jan 16, 2004 18:44
Antworten mit Zitat
Benutzer-Profile anzeigen
nein,da sis nich des wa sich brauch,ich will net 360 bilder auf der festplatte speichern sondern in nem dim feld
 

denial

BeitragFr, Jan 16, 2004 19:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Dim player(360)
image1 = LoadImage("DEINE GRAFIK.BMP")
TFormFilter(0)
For i = 0 To 359
   player(i) = CopyImage(image1)
   MidHandle player(i)
   RotateImage(player(i),i)
Next


Zuerst wird ein Array erstellt. Dann wird dein Bild geladen, welches gedreht gespeichert werden soll. TFormFilter() sorgt dafür, dass bi-lineares Filtering ausgeschaltet wird, damit keine unschöne Kanten entstehen.

In der Schleifer erhält jedes Arrayfach eben das Grundbild, welches dann mit RotateImage gedreht wird. MidHandle setzt den Pointer des Images in dessen Mitte, damit sich das Bild um sich selbst dreht.[/code]
 

girgl

BeitragFr, Jan 16, 2004 19:16
Antworten mit Zitat
Benutzer-Profile anzeigen
so hab ichs ja auch gemacht
ich hab zuerst ein image erstellt mittels createimage und dann in ner schleife hab ich das image gedreht um 360 grad und jedes grad in nem dim feld gespeichert.Dann hab ich versucht des Bild zu malen,aber es passiert nix.Wenn ich das Bild zur Kontrolle während dem drehen zeichnen lass,dann is es am anfang schnell und wird dann immer langsamer und die farbe von dem image verschwindet auch immer mehr.Ich glaub des wir dnur net angezeigt,weil des so ewig zum drehen und alles braucht : /

da sis mein code

Code: [AUSKLAPPEN]

image erstellen

for i=0 to 359
 schiff(i)=copyimage(schiffimg)
 rotateimage schiffimg,i
next

Travis

BeitragFr, Jan 16, 2004 19:26
Antworten mit Zitat
Benutzer-Profile anzeigen
So drehst du ja immer das Originalbild. Hast du mal versucht, das neu erstellte (im DIM-Feld) zu drehen? Obwohl das ja eigentlich egal sein müsste.

Code: [AUSKLAPPEN]

For i = 0 to 359
 schiff(i) = copyimage(schiffimg)
 rotateimage schiff(i), i
Next


EDIT:
Ich habe mal ein Programm von mir, daß ich nach dem GTA-Tutorial erstellt habe, so umgewandelt, dass es auch immer kopiert wird und das Original gedreht wird (wie bei deinem Code). Heraus kam, daß sich das Bild gar nicht mehr gedreht hat.
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.
 

girgl

BeitragFr, Jan 16, 2004 20:03
Antworten mit Zitat
Benutzer-Profile anzeigen
also so wie ich den code von mir interpretier tut er das aktuelle bild im dim feld speichern,danach wird das originalbild um i grad gedreht und dieses bild dann wieder im dim feld gespeichert,und das bis alle gradwinkel gespeichert sind.

Ich probier trotzdem mal deine lösung

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group