Teil eines Bildes malen

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

StarGazer

Betreff: Teil eines Bildes malen

BeitragSo, Feb 10, 2008 16:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
weis den jemand wie man in Max nur einen bestimmten Teil eines Bildes malen kann ?
Zuerst dachte ich das würde mit DrawImageRect gehen, aber damit scallierte er ein Bild auf ein Rechteck Sad
Hoffe es gibt einen Befehl dafür, habe leider keinen finden können. Alles in Einzelbilder zu speichern würde blöde sein.
AnimImages möchte ich nicht benutzen, da ich gehört habe das Max die Frames jeweils in eigene Texturen steckt, das wäre ja schrecklich.
Daher möchte ich bei Texturgrößen bleiben, 256x256, 512x512 ect.

Hoffe es kann mir jemand helfen.

d-bug

BeitragSo, Feb 10, 2008 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
BMax bietet dafür glaube ich keine hauseigene Funktion! Du könntest da aber einen kleinen Umweg gehen:

Code: [AUSKLAPPEN]
'Originalbild laden
Local Image:TImage = LoadImage ("MeinTollesBild.png")

'Hier wird ein neues Image aus einem 32x32 Pixel Rechteck der Pixmap des original Images geladen.
Local RectImage:TImage = LoadImage (Image.Pixmaps[0].Window (0,0,32,32))


Ist natürlich nicht genau das was du willst, aber so könnte es gehen!

Artemis

BeitragSo, Feb 10, 2008 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest auch einen Viewport dafür nutzen. Das ist nicht ganz das, was du suchst, könnte aber funktionieren.

StarGazer

BeitragSo, Feb 10, 2008 17:25
Antworten mit Zitat
Benutzer-Profile anzeigen
danke,

Habe aber gehört daß Pixelmap langsam sein soll,
jedenfall sollte ich sicher das Image danach aus dem Speicher löschen, sonst mühle ich ihn mit der Zeit zu ?

Ist das denn wirklich sonst nicht anders möglich ?
Da BlitzMax 3D ist, dachte ich, man könnte auch nur einen Teil der Textur darstellen. 3D Polygonen kann man einen bestimmten Teil einer Textur zuweisen.
So ne Art Texturkoordinaten Smile sowas wäre doch ziemlich sinvoll.
 

Dreamora

BeitragSo, Feb 10, 2008 17:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt Funktionen die das alte verhalten replizieren: DrawImageArea und dergleichen ( https://www.blitzforum.de/foru...hp?t=12801 )

Viewport ist prinzipiell nicht zu empfehlen, DX7 hardware schluckt den nämlich nur bedingt, da 4 Viewplanes genommen werden, viele Onboardchips der DX7 generation jedoch nur 2 unterstützten.
Und Pixmap ist in der Tat zu langsam für solche Ideen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

StarGazer

BeitragSo, Feb 10, 2008 18:23
Antworten mit Zitat
Benutzer-Profile anzeigen
@Dreamora
bei deinem Code sagt er mir leider "Compile Error Identifier 'TDX7ImageFrame' not found"
  • Zuletzt bearbeitet von StarGazer am Mo, Feb 11, 2008 13:46, insgesamt einmal bearbeitet
 

Dreamora

BeitragSo, Feb 10, 2008 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab den Code rasch gefixt. Dachte net das 1.24+ es wieder so grundlegend vernichtet hätte, da es ja performance- und kompatibilitätsmässig auch nix gebracht hat.
Danke für den Hinweis
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

StarGazer

BeitragDi, Feb 12, 2008 14:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Super Danke, jetzt geht es auch.


-------------------------------
Strict

?Win32
Import brl.d3d7max2d
?
Import brl.glmax2d
-------------------------------

muß ich jedoch auskommentieren, motzt sonst rum "must appear at top of file"

und die zweite Locale "imgFrame" umbennen, sonst meckert er rum sie gebe es doppelt.
Aber dann klappt es wunderbar Very Happy


Übrigens läuft dieser Code auch auf einem MAC ? wegen dem DX7 zeugs ?
Ich wuste garnicht das BMax auch DX7 kann, dachte wäre alles nur OpenGL.
sorry, bin noch ein newbie in Sachen BMax.
 

ChristianK

BeitragDi, Feb 12, 2008 14:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Du solltest besser "Import" statt "Include" verwenden, um die Datei in deinen Code einzufügen. Dann kommt die Meldung nicht.

Die Fragezeichen bedeuten, dass der Code je nach Plattform unterschiedlich kompiliert wird. Wenn er unter Windows kompiliert wird, importiert BlitzMax das DirectX 7-Modul, ansonsten OpenGL. Das heißt, es funktioniert auch auf MacOS und Linux.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

Dreamora

BeitragDi, Feb 12, 2008 15:24
Antworten mit Zitat
Benutzer-Profile anzeigen
net ganz. Das heisst das OpenGL immer importiert wird und DX auf Windows zusätzlich noch ... Smile (?not win32 würde heissen "sonst" OpenGL)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

StarGazer

BeitragDi, Feb 12, 2008 16:19
Antworten mit Zitat
Benutzer-Profile anzeigen
wieder was dazugelernt, danke euch Very Happy

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group