AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Drehen von Bitmaps oder 4-bitmaps?
Thema durchsuchen
Ansicht
Themen-Optionen

Drehen von Bitmaps oder 4-bitmaps?

Ein Thema von snow · begonnen am 6. Dez 2007 · letzter Beitrag vom 9. Dez 2007
Antwort Antwort
snow

Registriert seit: 28. Jun 2007
277 Beiträge
 
#1

Drehen von Bitmaps oder 4-bitmaps?

  Alt 6. Dez 2007, 21:20
Hallo

Ich muss ein bitmap drehen(um 90°,180°,270°). ICh muss es in ein Drawgrid zeichen(Gleisbild).

es gibt im netz viele methoden ein Bitmap, bzw eine Tgrafic zu drehen. ICh brauche eine schnelle methode.

Ist das überhaupt realisierbar oder soll ich jedes Bild einfach 4 mal in die Imagebox machen und dann ein anders bild laden.

Loht es sich überhaupt 48x48pixel bitmaps zu drehen oder soll man sie einfache 4 mal in den speicher laden?

Der Code von Finn-Ole Paulsen rechnet ja mit 32Bit-Bitmaps. ICh hab aber nur 16 farben sprich 4Bit-bitmaps. Ich denke das ich da viel unötige rechenzeit rausholen könnte wenn ich nur für 4Bit rechnen lasse oder?

Gruß snow
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Drehen von Bitmaps oder 4-bitmaps?

  Alt 6. Dez 2007, 21:40
Zitat von snow:
Loht es sich überhaupt 48x48pixel bitmaps zu drehen oder soll man sie einfache 4 mal in den speicher laden?
Einmal ablegen bzw laden und dann beim Start einmalig 3x drehen und jeweils ablegen. Dann hast du alle 4 Richtungen und kannst die entsprechend nutzen.

Zitat von snow:
Der Code von Finn-Ole Paulsen rechnet ja mit 32Bit-Bitmaps. ICh hab aber nur 16 farben sprich 4Bit-bitmaps. Ich denke das ich da viel unötige rechenzeit rausholen könnte wenn ich nur für 4Bit rechnen lasse oder?
Nein, da 4 Bit Bitmaps 2 Pixel pro Byte haben. Von daher muss man beim drehen auf jeden Fall die Pixel auseinander rechnen und beim Zielbitmap wieder entsprechend zusammen fügen, da die nebeneinander liegenden Pixel nicht wieder nebeneinander in die selbe Zeile kommen. Es würde sich z.B. die Bilder auf 8 Bit zu setzen und dann zu drehen.
  Mit Zitat antworten Zitat
snow

Registriert seit: 28. Jun 2007
277 Beiträge
 
#3

Re: Drehen von Bitmaps oder 4-bitmaps?

  Alt 7. Dez 2007, 20:12
Hab ich jetzt so gemacht wie du gesagt hast.

Ich hab 4 imagelisten angelegt und eine befüllt (mir 256farben bmp's)

Delphi-Quellcode:
Bildneu := Tbitmap.Create;
Bildalt := Tbitmap.Create;
Gleisbilderimagebox.GetBitmap(1,bildalt);
RotateBitmap(bildalt,bildneu,true);
Gleisbilderimagebox90.Add(bildneu,bildneu);
Bildneu.Free;
Bildalt.Free;
damit wollte ich die bitmaps drehen. ich hab die funktion von

http://home.t-online.de/home/PeterJHaas/delphi.htm

sie soll mit 256farben bmps zurechtkommen. doch ich bekomm ne errormeldung:

'Pixelformat nicht unterstützt'

warum?
Ich habs testweise mal mit ner 24bit bmp ausprobiert(32bit kann ich mit paint nicht abspeichern).

Eidit:// Wenn ich die bmp direkt via bitmap.loadfromfile()lade klappt es!

Gruß snow

Edit2://habs hinbekommen. nach dem getbitmap noch ein

.PixelFormat:=pf8bit;, dann klappts!
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Drehen von Bitmaps oder 4-bitmaps?

  Alt 8. Dez 2007, 16:18
Zitat von snow:
Edit2://habs hinbekommen. nach dem getbitmap noch ein

.PixelFormat:=pf8bit;, dann klappts!
Das meinte ich zuvor. Deshalb ist das Format in dem die Bitmaps vorliegen egal, vor dem drehen einfach diese Zuweisung des PixelFormats machen und dann sind 8 bpp Bilder und die können nach dem drehen auch gleich so weiter verwendet werden.
  Mit Zitat antworten Zitat
snow

Registriert seit: 28. Jun 2007
277 Beiträge
 
#5

Re: Drehen von Bitmaps oder 4-bitmaps?

  Alt 9. Dez 2007, 12:09
ICh hab aber einen anderen Fehler!

Wenn ich in ein 47x47pixel Bitmap eine horizontale linie bei pixel 24 zeichne so sollte das bild gleich aussehen, wenn ich es um 180°drehe.

Ist aber nicht so! Die line ist ein pixel zu hoch. Wie iss das möglich?

Gruß snow


Edit://fehler gefunden. Der Delphi bildeditor rechnet von 0 bis 46 nicht von 1 bis 47
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz