JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Bilder darstellen ohne Dll

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Faller
Junior JLI'ler


Alter: 36
Anmeldedatum: 30.11.2006
Beiträge: 88
Wohnort: Dresden
Medaillen: Keine

BeitragVerfasst am: 14.08.2007, 13:21    Titel: Bilder darstellen ohne Dll Antworten mit Zitat

Ich arbeite gerade an einem kleinen projekt bei dem am ende des Programmes nur eine exe ohne jede abhängikeit erstellt werden darf.


nun gibt es ja freie Gui Platformen die dies machen müssten.
Freeimage oder halt hier welche
http://www.thefreecountry.com/sourcecode/gui.shtml

nun ich suche nun schon seit wochen und probiere rum.
MiniGUI ist nur für linux
VCF Visual Component Framework arbeitet mit einer dll die es net gibt


und libpng hab ich auch versucht blos leider kann man dort nix darstellen.
Und wie ich es eine schnelle bild ausgabe programmiere weis ich leider noch net.

Also nun zu meinen Fragen:
Kennt jemand eine Bibliothek das ein Bild darstellen kann "png" ohne eine abhängigkeit.

wenn ich lippng nutze müste ich wissen wie man ein Bild ausgibt ohne pixel für pixel alle hintereinander mit setpixel auszugeben.


Es geht um Bilder wie png oder jpg kein bmp.

Ich suche schon seit Ewigkeiten und weis nicht weiter wie man sowas macht

mfg faller.

ps google weis ich net was ich eingaben soll das ein paar sinvolle treffer erscheinen.
_________________
versuche alles nur wann und wie ist die frage
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 14.08.2007, 13:47    Titel: Antworten mit Zitat

Ok, erstens ist es für Windows, nehme ich an?
Dann gibt es sowieso fast immer Abhängigkeiten, eben ein paar Standard dll's die aber in jedem Windowsverzeichnis liegen müssen, eben weil quasi jedes Programm sie benötigt.
Du könntest daher die WInAPI benutzen mit GDI kann man auch schon ne Menge machen, jedenfalls wenn es jetzt kein Spiel sein soll.
Um png's laden zu können wirst du eh eine separate Lib benötigen, allerdings kannst du diese ja statisch linken daher entstehen keine neuen Abhängigkeiten.
Bei Windows XP ist ja DirectX auch standardmäßig vorhanden, vielleicht nicht die neuste Version, aber trotzdem dürftest du ja DirectDraw verwenden können.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Faller
Junior JLI'ler


Alter: 36
Anmeldedatum: 30.11.2006
Beiträge: 88
Wohnort: Dresden
Medaillen: Keine

BeitragVerfasst am: 14.08.2007, 15:01    Titel: Antworten mit Zitat

wie linke ich statisch eine dll datei ???.

Das Programm soll für windows 95 bis xp sein eventuel Vista.
Wie baue ich eine solche statische verlinkung ein.

Wäre trotzdem net wenn jemand die Frage von noch beantwortet welche man nutzen solte um png zu nutzen zu können

mfg Faller

ps ich werde mal nach statischer verlinkung suchen.
_________________
versuche alles nur wann und wie ist die frage
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 14.08.2007, 16:43    Titel: Antworten mit Zitat

Hmm, du lädst das Bild mit libpng - da gibt es eine Funktion, wo du das Bild zeilenweise auslesen kannst und schreibst es in den Speicher. Diesen Speicherbreich kannst du mit Standard-Windows-Funktionen anzeigen, da brauchst du keine dlls oder etwas anderes.

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 14.08.2007, 17:56    Titel: Antworten mit Zitat

dll's link man nicht statisch. Evtl. könnte man die als Ressource einbinden oder so, aber dafür sind die nicht gemacht.
Wenn du eine Bibliothek kompilierst kannst du entweder eine .dll erzeugen oder eine .lib (bzw. .a). Die Version mit .lib wird statisch gelinkt, die dll dynamisch (daher der Name). Bei libpng dürfte beides möglich sein.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Faller
Junior JLI'ler


Alter: 36
Anmeldedatum: 30.11.2006
Beiträge: 88
Wohnort: Dresden
Medaillen: Keine

BeitragVerfasst am: 14.08.2007, 18:40    Titel: Antworten mit Zitat

thx für die antworten
zu Christian Rousselle

also das mit der libpng wind ich intressant.
da ich mein bild schon so ausgellesen habe.

ein bischen code
Code:

for (y=0; y<endey; y++)
{
   png_byte* row = row_pointers[y];
   for (x=0; x<endex; x++)
   {
      png_byte* ptr = &(row[x*3]);
      SetPixel(hdc,x,30+y, RGB(ptr[0],ptr[1],ptr[2]));
   }
}

so gebe ich derzeitig mein bild aus.
wie bekomme ich jetze die png daten so in den speicher das ich die einfach per gdi ausgeben kann???

zu
Jonathanklein
weist du wo ich ne gdi+ lib herbekomme.
_________________
versuche alles nur wann und wie ist die frage
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 14.08.2007, 19:25    Titel: Antworten mit Zitat

Hö? So wie ich das sehe, bist du gerade dabei, ein png-Bild mithilfe von pnglib und GDI auszugeben...
Wenn du es etwas komfortabler und vor allen Schneller haben willst, könntest du dir mal HBITMAP anschauen. IMO gabs damit eine Technik, wo man mit GDI befehlen eine Grafik im Speicher "gemalt" hat und die dann mit einem einzigen Befehl auf dem Bildschirm ausgeben konnte. Du könntest mit der SetPixelschleife dein Bild laden und dann immer bei Bedarf mit einem Schlag anzeigen, das dürfte um einiges schneller sein.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Faller
Junior JLI'ler


Alter: 36
Anmeldedatum: 30.11.2006
Beiträge: 88
Wohnort: Dresden
Medaillen: Keine

BeitragVerfasst am: 15.08.2007, 07:25    Titel: Antworten mit Zitat

Ich versuche 2 spurisch zu arbeiten wenn das eine nicht funktioniert dann vieleicht das andere.

also 1 theroie wie mans machen könnte.
libpng bild lessen dann in einen spiecher laden als bmp und dann über gdi ausgeben.
Frage dazu wie bekomme ich den Aufbau der HBITMAP herraus um diese zu imitieren.

zu 2 eine dll statisch einbinden.
funktioniert nur mit einer .lib Datei da wäre es ja am besten wenn ich die gdiplus.lib ihrgentwo her bekomme. Und dann auf alle funktionen von gdi plus nutzen könnte.

freue ich mich auf alle anregungen.

mfg faller
_________________
versuche alles nur wann und wie ist die frage
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 15.08.2007, 09:17    Titel: Antworten mit Zitat

Wieso unbedingt GDI+? Alles was du willst, geht auch wunderbar "nur" mit GDI, und eine zusätzliche lib einzubinden vergrößert immer die ausführbare Datei.

Und über HBITMAP findet man nun wirklich genug im Internet. Hier mal ein kleiner Tip: klick
Das dritte von oben hört sich schon einmal vielversprechend an. Und über die verwendeten Funktionen findest du alles im MSDN.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Faller
Junior JLI'ler


Alter: 36
Anmeldedatum: 30.11.2006
Beiträge: 88
Wohnort: Dresden
Medaillen: Keine

BeitragVerfasst am: 15.08.2007, 09:37    Titel: Antworten mit Zitat

nunja als erstes ich möchte alle möglichkeiten verstehen wileicht machen sie ja sinn nur halt wann anders.

Also wie baue ich statisch eine dll in mein Projekt ein?

Zu meinem derzeitigen Projekt würde es warscheinlich ausreichen das Bild umzuwandeln da hast du recht "Jonathan klein".

Aber was ist wenn ich im Verlauf des Projektes noch andere grafik Formate einbauen möchte zum Beispiel, dann wäre ja gdi+ die bessere Lösung.

finde ich zumindestens.

zu dem HBITMAP hab ich noch gar net gesucht aber danke für den link.
_________________
versuche alles nur wann und wie ist die frage
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 15.08.2007, 09:55    Titel: Antworten mit Zitat

dll's soll man nicht statisch einbinden, auch wenn es vielleicht ginge. Wenn du eine lib statisch linken möchtest, geht das genauso wie z.B. mit DirectX. Man inkludiert die passenden Header, und stellt in den Projektsituationen die lib ein.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Faller
Junior JLI'ler


Alter: 36
Anmeldedatum: 30.11.2006
Beiträge: 88
Wohnort: Dresden
Medaillen: Keine

BeitragVerfasst am: 15.08.2007, 10:10    Titel: Antworten mit Zitat

ok hab ich so gemacht steht.

Also "Extras" "optionen" dann "Verzeichnisse" und dann "Bibliotehken"
dann die lib ausgesucht.
Und gestetzt.

Dann auf "Projekt" "Einstellungen" dann auf "Linker" und dann die gdiplus.lib bei objekt module hingeschrieben.

dann die header Dadein eingebunden.

zb.
#include"../neu/GDIPlus/Includes/GdiPlus.h"

ok 0 Fehler 0 Wahrings programm wird gestartet.

dann exe auf andernen Rechner kopiert.
dann dort Fehler.
Die Dynamic Link liberay gdipluss.dll wurde im angegben pfad nicht gefunden.

Als so klapt es nicht was hab ich falsch gemacht.
wie ändere ich das die abhängigkeit underbrochen wird.

ich hab auch es auch ausprobiert "projekt" "einstellung" "allgemein"
"mfc mit einer gemeinsamen dll erstellen "

ich nutze zwar win und keine konsole und auch kein mfc
aber in einigen Foren wird das empfohlen
mfg Faller
_________________
versuche alles nur wann und wie ist die frage
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum