Delphi-PRAXiS
Seite 5 von 6   « Erste     345 6      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi 18bit Bilder erstellen?? (https://www.delphipraxis.net/57079-18bit-bilder-erstellen.html)

neolithos 18. Nov 2005 08:40

Re: 18bit Bilder erstellen??
 
Zitat:

Zitat von Simon6785
Und was ist mit der Bildausfirmware?

Wie meinen?

Zitat:

Zitat von Simon6785
Ach, noch eins, du schreibst const data; von welchem datentyp ist denn data? Integer?

Keinem, da ich nur einen Zeiger auf die Bilderdaten benötige, welcher exact ist mir völlig egal. Und const oder var erledigt das wunderbar für. Auf diesem Weg vermeidet man oft Zeiger arithmetik von außen.

Simon6785 18. Nov 2005 08:44

Re: 18bit Bilder erstellen??
 
Äm, ahso, die function erwartet bei data nur einen zeiger auf die daten! Dann ist klar warum meine bmpausfirmware function nicht läuft... nur wie bekomme ich denn einen zeiger auf das ausgelesene bytearray?

Delphi-Quellcode:
function TForm1.bmpausfirmware(offset,groesse:integer):TBitmap;
VAR i:integer; buf: array of byte; ergebniss:string;
begin
cla := TFileStream.Create(pfad, fmOpenread);
cla.Position:=offset;
SetLength(buf, groesse);
cla.Read(buf[0], groesse);
ergebniss:='';
for i:=0 to groesse do
ergebniss:=ergebniss + inttostr(buf[0]);
i:=strtoint(ergebniss);
result:=Bmp18ToBmp24(i,176,220);
end;
Also eigentlich komme ich mit delphi ganz gut klar, nur mit zeigern steh ich auf kriegsfuß...

neolithos 18. Nov 2005 08:46

Re: 18bit Bilder erstellen??
 
Delphi-Quellcode:
function TForm1.bmpausfirmware(offset,groesse:integer):TBitmap;
VAR i:integer; buf: array of byte; ergebniss:string;
begin
cla := TFileStream.Create(pfad, fmOpenread);
cla.Position:=offset;
SetLength(buf, groesse);
cla.Read(buf[0], groesse);
ergebniss:='';
for i:=0 to groesse do
ergebniss:=ergebniss + inttostr(buf[0]);
i:=strtoint(ergebniss);
result:=Bmp18ToBmp24(buf[0],176,220); // << ---
end;
In dem man die Daten übergibt! :zwinker:

Simon6785 18. Nov 2005 08:50

Re: 18bit Bilder erstellen??
 
ah, das gefällt mir, langsam scheine auch ich das alles hinzubekommen... also sieht meine function jetzt so aus:

Delphi-Quellcode:
function TForm1.bmpausfirmware(offset,groesse,width,height:integer):TBitmap;
VAR buf: array of byte;
begin
cla := TFileStream.Create(pfad, fmOpenread);
cla.Position:=offset;
SetLength(buf, groesse);
cla.Read(buf[0], groesse);
result:=Bmp18ToBmp24(buf[0],width,height);
 end;
kan ndas jetzt nicht ausprobieren, bin auf der arbeit, aberdas hört sich doch vielversprechend an, danke!

Simon6785 19. Nov 2005 10:13

Re: 18bit Bilder erstellen??
 
Hallo nochmal!

Also die bmpausfirmware function läuft einwandfrei. aber die bildtauschen verursacht einen access error

Delphi-Quellcode:
procedure TForm1.bildtauschen(offset,groesse:Integer);
VAR length : integer;
    p : Pointer;
    buffer: array of byte;
begin
  length := Bmp24ToBmp18(image2.picture.bitmap, p);
  cla := TFileStream.Create(pfad, fmOpenWrite or fmShareExclusive);
  cla.Position := offset;
  cla.write(p^, length);
  FreeAndNil(cla);
  FreeMem(p);
end;
ich sehe keinen fehler, ihr?

//EDIT

es ist die bmp24to18. wenn ich sie einfach mal so aufrufe

Delphi-Quellcode:
length := Bmp24ToBmp18(image2.picture.bitmap, p);
kommt der fehler auch!!!

lustig ist nur, er tauscht das Bild, funzt einwandfrei, aber das programm stürzt ab...

neolithos 19. Nov 2005 11:35

Re: 18bit Bilder erstellen??
 
EDIT: Englisch to German

Also ich seh den Fehler nicht, vielleicht liegt er ja im Zusammenhang (Wie war das mit Parties...)

Sorry.

Simon6785 19. Nov 2005 11:40

Re: 18bit Bilder erstellen??
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mal meine komplette unit: der fehler erfolgt beim button2klick, jeweils wenn ich die function direkt aufrufe oder über die bildtauschen

Simon6785 19. Nov 2005 12:00

Re: 18bit Bilder erstellen??
 
ok, vergiss es, ES GEHT!! Wenn ich dir änderungen an den functions die du weiter oben vorgeschlagen hast mache dann läuft alles einwandfei!! DANKE AN ALLE!

Simon6785 19. Nov 2005 12:58

Re: 18bit Bilder erstellen??
 
Liste der Anhänge anzeigen (Anzahl: 4)
hey neo, du musst mir nochmal helfen :cry: das gibts doch garnicht, ich hab das programm soweit fertig, und jetzt hab ich mal dir original firmware geöffnet, und was passiert: Er liegt fast überall mit den farbwerten total daneben. also eine firmware wo ich schon selber neue bilder hinzugefügt habe, da sehen die bilder top aus, aber wenn ich die originalen bilder anzeige kommt sowas bei raus:

irgendeine farbe oder so wird falsch erkannt?!? Brauchst du noch die 18bit bilder? Das ist nämlhc etwas schwehr, die müsst ich erst mittm hex editor aus der firmware holen, oder kannst du so den fehler finden??

DANKE SIMON

ich habe mal mein komplettes Projekt und eine Firmware auf meinen Server geladen. Wie ihr seht hat er probleme die bilder darzustellen, sobald man sie aber einmal tauscht gegen andere sind sie einwandfrei. Das liegt nicht nur daran das er nur von sich getauschte möchte, ich hab auch mal ein bild per hand (hex editor) getauscht und die liest er auch wunderbar ein! Vlt kann mir ja jemand helfen!

http://wp1013940.wp026.webpack.hoste...de/projekt.zip

neolithos 21. Nov 2005 16:10

Re: 18bit Bilder erstellen??
 
Tut mir ehrlich leid. Aber mein Notebook schicke ich heute zurueck zum Hersteller. Leider hab ich kein Delphi und auch nicht den Quellcode. Werde aber weiter auf diesen Thread achten so gut wie ich kann.

Tip:
Vergleich mal die Farbwerte, dann sieht man meist welche Hex Zahl abweicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:21 Uhr.
Seite 5 von 6   « Erste     345 6      

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