MirrorImage() - 56 mal schneller als ScaleImage()
Übersicht

KekskillerBetreff: MirrorImage() - 56 mal schneller als ScaleImage() |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hab mal ne gaaaaanz kleine Bildspiegelfunktion gebaut.
Ok, ist eigentlich vollkommen einfach zu machen, abr naja... Tada: BlitzBasic: [AUSKLAPPEN] Function MirrorImage(image,flag) Das Bild wird direkt auf dem Buffer geändert. Wie RotateImage(), nur eben recht fix ^_^ . Geht eigentlich auch ganz gut für größere Bilder, müsst ihr selbst mal ausprobieren, obs schnell genug ist. Aber bitte erst vorberechnen, kein RealTime-Teil. Obwohlvorberechnen eigentlich nicht das richtige Wort dafür ist, besser ist vorspiegeln. |
||
- Zuletzt bearbeitet von Kekskiller am Sa, Aug 07, 2004 18:15, insgesamt einmal bearbeitet
Ballermann99 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Man könnte natürlich auch ScaleImage img, -1, 1 bzw ScaleImage img, 1, -1 benutzen ![]() ![]() MfG Ballermann99 |
||
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oller Spielverdeber ![]() Aber ScaleImage() ist doch eine dieser "bösen Funktionen" ![]() |
||
Ballermann99 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Was heißt böse? ^^
Für Realtime kann ma sie nicht benutzen, stimmt, aber man kann ja vorberechnen. |
||
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Na die "bösen" Dinger sind bei immer die ust lahmen Teile ^_^ .
Aber meines ist sicher auch nicht schneller... Habs aber auch nicht mal ausprobiert, da ich in Sachen Speed-Tests nicht so ein Experte bin. |
||
Ballermann99 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab den Speed mal grad getestet. Mit deiner Routine dauert es 20 ms und mit ScaleImage() 1120ms bei einem Bild 800*600 ![]() Das is schon ein unterschied ![]() |
||
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn man diese methode nur etwas erweitert, kann man damit scaleimage ersetzen... habe ich hier schon öfters gesehen. | ||
MrKeks.net |
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey, cool, hätte ich nicht gedacht ![]() als die andere Variante, werde es mal ins Blitzbasic.com-Code-Archiv stellen ![]() Aber ScaleImage() ersetzen? Weiß nicht, da braucht es eine anders aufgebaute Routine... Aber ne Idee wäre sowas sicher wert. Obwohl ... Copyrect ist sicher keine schöne Verwendung für ganze Rotationen, da ich Sinus für bräuchte. Und schneller wird es damit sicher nicht. Belasse man es beim Spiegeln ![]() |
||
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
BlitzBasic: [AUSKLAPPEN] Global scratch = CreateImage(1600,1400)Hab jetzt keinen Speedtest gemacht, aber das ist um einiges schneller als ScaleImage (allerdings natürlich nicht mit bilinearem Filtering). Und die Methode ist deiner relativ ähnlich. Wenn einen die globale Variable stört, kann man das Bild natürlich auch lokal in der Funktion erstellen lassen, dann muss es auch nicht so groß sein. |
||
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Uh, verdammt, ich Göppel!
ScaleImage() war ja zum Skalieren da >_< ... Ich dachte ihr meintet RotateImage() ^_^" ... Deine Methode ist interessant, aber anscheinend für Realtime ausgelegt. Ich würde das ganze auf ein Image auslegen, was dann schnell vorbrechnet werden kann. Achja: Meine GraKa verkraftet keine Bilder, welche größer als die Maximalauflösung ist nicht ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group