Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mo Mai 20, 2024 21:20

Foren-Übersicht » Sonstiges » Meinungen zu den Projekten
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 36 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 31, 2005 19:15 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jun 24, 2003 19:09
Beiträge: 732
Ich denke ich kann da auch helfen da ich nun seit über einem Jahr mit Graphics32 Programmiere und Finalspace scheint eh nicht gerade oft hier zu sein ;)
schreib mal ein wenig genauer was du wissen willst :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 01, 2005 20:23 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 19, 2004 00:27
Beiträge: 454
Wohnort: Nürnberg
naja, man kann den Skin ja mit verschiedenen Farben einfärben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 01, 2005 20:54 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also ich hatte für meine damalige Firma auch schon mal kleine Bitmaps eingefärbt. Das waren allerdings kleine Symbole die ich intern in einer Liste abgelegt hatte und beim Zeichnen dann entsprechend eingefärbt. Bei einem Skin würde ich das ähnlich anstellen. Also ein graues Bild und dann entsprechend das Grau ersetzen. Dunkel dann dunkler und Hell dann heller. Da muss man dann entsprechend ein bisschen experimentele Informatik betreiben. ;-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 01, 2005 21:12 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jun 24, 2003 19:09
Beiträge: 732
Für TBitmap32 ist das eigentlich kein Problem

Code:
  1.  
  2. ###############################################################
  3. Source File : SharpDeskApi.pas
  4. Authors :
  5.   Malx <Malx@Lowdimension.net>
  6.   BilliBerserker <BilliBerserker@Lowdimension.net>
  7. ###############################################################
  8.  
  9. procedure BlendImageA(bmp : TBitmap32; color : TColor; alpha:integer);
  10. var
  11.   P            : PColor32;
  12.   I            : integer;
  13.   sum1,sum2   : real;
  14.   CB,CR,CG    : Integer;
  15.   oCB,oCR,oCG : Integer;
  16.   nCB,nCR,nCG : Integer;
  17.   tempAlpha   : integer;
  18.   change      : Integer;
  19. begin
  20.   alpha := min(alpha,255);
  21.   alpha := max(alpha,0);
  22.   CR := GetRValue(colortorgb(color));
  23.   CG := GetGValue(colortorgb(color));
  24.   CB := GetBValue(colortorgb(color));
  25.   sum1 := (CB+CR+CG)/3;
  26.   with bmp do begin
  27.     try
  28.       P := PixelPtr[0, 0];
  29.       for I := 0 to Width * Height - 1 do
  30.       begin
  31.         tempAlpha := (P^ shr 24);
  32.         if tempAlpha <> 0 then begin
  33.           oCR    := (P^ and $00FF0000)shr 16;
  34.           oCG    := (P^ and $0000FF00)shr 8;
  35.           oCB    :=  P^ and $0000FF;
  36.           sum2   := (oCB+oCR+oCG)/3;
  37.           change := round(sum2-sum1);
  38.           nCR    := CR + change;
  39.           nCG    := CG + change;
  40.           nCB    := CB + change;
  41.           nCR    := round((alpha/255)*nCR+((255-alpha)/255)*oCR);
  42.           nCG    := round((alpha/255)*nCG+((255-alpha)/255)*oCG);
  43.           nCB    := round((alpha/255)*nCB+((255-alpha)/255)*oCB);
  44.           if nCB > 255 then nCB := 255
  45.           else if nCB < 0 then nCB := 0;
  46.           if nCR > 255 then nCR := 255
  47.           else if nCR < 0 then nCR := 0;
  48.           if nCG > 255 then nCG := 255
  49.           else if nCG < 0 then nCG := 0;
  50.           P^ := color32(nCR,nCG,nCB,tempAlpha);
  51.         end;
  52.         Inc(P); // proceed to the next pixel
  53.       end;
  54.     finally
  55.     end;
  56.   end;
  57. end;


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 01, 2005 21:17 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 19, 2004 00:27
Beiträge: 454
Wohnort: Nürnberg
geht das nur mit Bitmap32?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Feb 01, 2005 21:24 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Beim normalen TBitmap kann man auch über ScanLine Zugriff auf die Daten erhalten. Dann setzt man vorher das Pixelformat noch auf pf32bit oder pf24bit und kann dann auch die jeweiligen Farbwerte verändern.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Feb 02, 2005 15:12 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 19, 2004 00:27
Beiträge: 454
Wohnort: Nürnberg
*heul* und wie geht das ändern?
Des check ich ja nicht!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 02, 2005 14:05 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
So da bin ich wieder, nach langer zeit wieder unter den lebenden.
Also infärben mit normalen TBitmap ist ganz ez :)

Diese routine verwende ich in Xenorate 2 um den skin einzufärben :)
Basiert natürlich genau auf den BlendBitmap prinzip welches Billi gepostet hat.

Code:
  1.  
  2. procedure BlendBitmap(_Bmp : TBitmap; _Color : TColor; _Alpha : Integer; _IgnoreColor : TColor = 0);
  3. var
  4.    CB,CR,CG         : Integer;
  5.    ignR, ignG, ignB : Integer;
  6.    sum1,sum2        : real;
  7.    X, Y             : integer;
  8.    P                : PRGBTriple;
  9.    oCB,oCR,oCG      : Integer;
  10.    nCB,nCR,nCG      : Integer;
  11.    change           : Integer;
  12. begin
  13.   _Alpha := min(_Alpha,255);
  14.   _Alpha := max(_Alpha,0);
  15.   CR := GetRValue(colortorgb(_Color));
  16.   CG := GetGValue(colortorgb(_Color));
  17.   CB := GetBValue(colortorgb(_Color));
  18.   ignR := GetRValue(colortorgb(_IgnoreColor));
  19.   ignG := GetGValue(colortorgb(_IgnoreColor));
  20.   ignB := GetBValue(colortorgb(_IgnoreColor));
  21.   sum1 := (CB+CR+CG)/3;
  22.   with _Bmp do begin
  23.     try
  24.  
  25.       for y := 0 to height -1 do
  26.       begin
  27.         P := ScanLine[y];
  28.         for x := 0 to width -1 do
  29.         begin
  30.           oCR := P^.rgbtRed;
  31.           oCG := P^.rgbtGreen;
  32.           oCB := P^.rgbtBlue;
  33.  
  34.           if (ignR <> oCR) and
  35.              (ignG <> oCG) and
  36.              (ignB <> oCB) then
  37.           begin
  38.  
  39.             sum2 := (oCB+oCR+oCG)/3;
  40.             change := round(sum2-sum1);
  41.             nCR    := CR + change;
  42.             nCG    := CG + change;
  43.             nCB    := CB + change;
  44.             nCR    := round((_Alpha/255)*nCR+((255-_Alpha)/255)*oCR);
  45.             nCG    := round((_Alpha/255)*nCG+((255-_Alpha)/255)*oCG);
  46.             nCB    := round((_Alpha/255)*nCB+((255-_Alpha)/255)*oCB);
  47.             if nCB > 255 then nCB := 255
  48.             else if nCB < 0 then nCB := 0;
  49.             if nCR > 255 then nCR := 255
  50.             else if nCR < 0 then nCR := 0;
  51.             if nCG > 255 then nCG := 255
  52.             else if nCG < 0 then nCG := 0;
  53.  
  54.             P^.rgbtRed := nCR;
  55.             P^.rgbtGreen := nCG;
  56.             P^.rgbtBlue := nCB;
  57.  
  58.           end;
  59.           Inc(P);
  60.         end;
  61.       end;
  62.     finally
  63.     end;
  64.   end;
  65. end;
  66.  


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Apr 09, 2005 20:21 
Offline
DGL Member
Benutzeravatar

Registriert: So Dez 19, 2004 00:27
Beiträge: 454
Wohnort: Nürnberg
Über was geht die Videowiedergabe? 100%ig nicht über BASS ;)

EDIT: Hat sich erledigt. Sollte nächstens die Credits ganz anschauen ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 16, 2006 16:37 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Von der Struktur her sieht das ja schon mal recht viel versprechend aus. Allerdings bin ich ein wenig verwirrt was die xml Struktur angeht. ;-)

Würde das (nach meinem bescheidenen Wissenstand) wohl eher so gestalten.
<streams id="45"><stream type="2" codec="MPEG2 Layer 3" bitrate="192.0" /></streams>

Die Anzahl der Streams ergibt sich ja automatisch aus der Anzahl an StreamTags. Und die ID müsste ja da irgendwie drinne hängen. Mag aber sein, dass ich mich da jetzt ein wenig zu sehr an xml orientiere. Dort darf ja normal nur ein oberstes Tag existieren.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 16, 2006 16:48 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Also im grunde ist es nur sone art XML, wie genau das abläuft steuer ich.
Es gibt auch kein wirklichen XML parser. In der hinsicht muss noch was passieren.

Momentan siehts so aus:

Also mein simples video plugin gibt z.b. sowas aus wenn man nen mediafile öffnet:

Code:
  1.  
  2. <length>120000</length>
  3. <type>XAV</type>
  4. <streams>10</streams>
  5. <stream0 id="10" type="1" codec="Uncompressed" videosize="640x480" bitrate="12800.00" desc="Normal picture" selected="1" />
  6. <stream1 id="11" type="1" codec="Uncompressed" videosize="640x480" bitrate="12800.00" desc="Green picture" selected="0" />
  7. <stream2 id="20" type="2" codec="Uncompressed" videosize="0x0" bitrate="192.00" desc="Japanese" selected="1" />
  8. <stream3 id="21" type="2" codec="Uncompressed" videosize="0x0" bitrate="192.00" desc="English" selected="0" />
  9. <stream4 id="22" type="2" codec="Uncompressed" videosize="0x0" bitrate="192.00" desc="Chinese" selected="0" />
  10. <stream5 id="23" type="2" codec="Uncompressed" videosize="0x0" bitrate="192.00" desc="German" selected="0" />
  11. <stream6 id="30" type="3" codec="Uncompressed" videosize="0x0" bitrate="0.00" desc="English" selected="0" />
  12. <stream7 id="31" type="3" codec="Uncompressed" videosize="0x0" bitrate="0.00" desc="English (with comments)" selected="0" />
  13. <stream8 id="32" type="3" codec="Uncompressed" videosize="0x0" bitrate="0.00" desc="German" selected="0" />
  14. <stream9 id="33" type="3" codec="Uncompressed" videosize="0x0" bitrate="0.00" desc="Turkey" selected="0" />
  15. <id>155</id>
  16. <caption>Der_Letzte_Quaker_High_Quality.avi</caption>
  17.  


Es gibt da auch nicht wirklich ne Knotenstruktur wie in XML, ich will ja auchsowiel Zeichen wie möglich sparen.
Weil pro Messages kann ich max. 65536 Unicode Chars übertragen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 16, 2006 19:03 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7804
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Du solltest vielleicht deinen Nachrichten noch eine priorität mit geben. Wenn z.B. dass System aus weclhen gründen auch immer arg am würgen ist, und du ein Video laden wolltest, dieses dann abbrechen und wiederum auf Laden gegenagen bist, wäre es mieß, wenn die Abbruch nachricht erst abgearbeitet wird, wenn beide Videos geladen sind. Kann mich aber auch irren, und die Nachrichten sind für ander weitige Zwecke da.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 17, 2006 09:33 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Finalspace hat geschrieben:
Es gibt da auch nicht wirklich ne Knotenstruktur wie in XML, ich will ja auchsowiel Zeichen wie möglich sparen.
Weil pro Messages kann ich max. 65536 Unicode Chars übertragen.

Wo kommt denn da so eine Beschränkung her? Aber ich kann dein Argument schon verstehen. Allerdings schau mal wie viele Zeichen du jetzt hast und das ist schon ein sehr umfangreicher Film. Dann kommen da evtl. noch 5-7 Untertitel dazu und das wars. Dann biste noch locker unter 10.000 Bytes. Das mit der XML Struktur war nur ein Vorschlag. Lass dich davon bitte nicht unter Druck setzen. Im Endeffekt musst du mit dem Format leben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 18, 2006 14:20 
Offline
DGL Member

Registriert: Mi Okt 16, 2002 15:06
Beiträge: 1012
Also da ich keine Dynamischen WideString via librarys als parameter nehmen und ich schlechte erfahrung mit dem String Speicher Manager von Delphi gemacht in bezug auf DLL´s hab ich mich auf nen Statisches WideChar array entscheiden von ner maximalen länge von 65536 zeichen, welches knapp 128 kb verschlingt aber notwendig ist bei der fülle der daten die da durchgehen.

Bin grad dabei die API specs als html nachzuschreiben, is aba nen haufen arbeit :(
Hätte von anfang an alles als html machen sollen :(


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 18, 2006 15:01 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Wenn du es umschreibst gehe einen Stück weiter und mache es als XHTML. Dann kannste das Design später einfach per CSS ändern. Spart ne menge Aufwand. ;-)

Als Beispiel kannste dir den HTML in der aktuellen dglOpenGL.pas angesehen. Da hab ich das so gemacht.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 36 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3  Nächste
Foren-Übersicht » Sonstiges » Meinungen zu den Projekten


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.012s | 14 Queries | GZIP : On ]