Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi image (https://www.delphipraxis.net/141108-image.html)

LEE1 2. Okt 2009 18:39


image
 
hai

kann man irgendwie ein image perspektivisch darstellen??

alleinherrscher 2. Okt 2009 18:55

Re: image
 
Meinst du so etwas:

http://www.delphipraxis.net/internal...t.php?t=137198

In meinem ersten Posting gibt es einen Sourcecode für das Coverflow mit GR32. Da kannst du die Funktion PaintCover verwenden, um ein Bild perspektivisch zu zeichnen!

//edit: Die hier meine ich:

Delphi-Quellcode:
procedure PaintCover(DestBitmap:TBitmap32;x,y,width,height:integer;perspectiv:single;angle:integer;picture:TBitmap32);
var lo,lu,ro,ru:TPoint;
    mo,mu:extended;
    i,j:integer;
    dummy:integer;

begin


//vier Eckpunkte des Covers berechnen:

lo.x:=x;
lo.Y:=y;
lu.X:=x;
lu.Y:=y+height;
ru.x:=round(lu.x+width*cos(abs(angle)/360*2*Pi));
ru.y:=round(lu.y-perspectiv*height/2*sin(abs(angle)/360*2*Pi));
ro.X:=ru.x;
ro.Y:=round(ru.y-height+perspectiv*height*sin(abs(angle)/360*2*Pi));

if angle<0 then
begin
  dummy:=ro.y;
  ro.y:=lo.y;
  lo.y:=dummy;
  dummy:=ru.y;
  ru.y:=lu.y;
  lu.y:=dummy;
  dummy:=(width-(ro.x-lo.x));
  lo.x:=lo.x+dummy;
  lu.x:=lu.X+dummy;
  ro.x:=ro.X+dummy;
  ru.x:=ru.x+dummy;
end;

//Steigung der oberen und unteren Kante berechnen:
mo:=-(ro.Y-lo.Y)/(ro.x-lo.X);
mu:=-(ru.Y-lu.Y)/(ru.x-lu.x);

//bild zeichnen:


DestBitmap.BeginUpdate;
DestBitmap.Clear(clblack);

for i:=0 to (ro.X-lo.x) do
 for j:=round(-i*mo) to round((lu.Y-lo.y)+i*mo) do
   DestBitmap.Pixel[lo.X+i,lo.Y+j]:=round(picture.Pixels[round(picture.Width/(ro.x-lo.X)*i),round(picture.Height/((lu.Y-lo.y)+2*i*mo)*(j+i*mo))]);

//Rechteck zeichnen:
with DestBitmap do
 begin
  pencolor:=clsilver;
  moveto(lo.x,lo.y);
  linetos(lu.x,lu.y);
  linetos(ru.x,ru.y);
  linetos(ro.x,ro.y);
  linetos(lo.x,lo.y);
 end;

DestBitmap.EndUpdate;

end;

LEE1 2. Okt 2009 19:07

Re: image
 
Liste der Anhänge anzeigen (Anzahl: 1)
es kommt schon direkt en fehler


|
|
|

Die Muhkuh 2. Okt 2009 19:12

Re: image
 
Entweder Du installierst die Graphics32-Bibliothek oder Du benennest TBitmap32 in TBitmap um, dann wird das ganze aber sehr langsam. :zwinker:

alleinherrscher 2. Okt 2009 19:13

Re: image
 
@Die Muhkuh...ich die funktion linetos, die tbitmap nicht hat, da bringt das umbenennen nix...

:) Wie oben geschrieben, benötigst du - für den Code noch die Units von GR32. Das sind erweiterte Grafikkomponenten für Delphi die mehr und viel schnellere Funktionen bieten, als die Standard-Delphi Funktionen.

Lad dir das erstmal runter und installier es:

http://www.graphics32.org/wiki/

LEE1 2. Okt 2009 19:19

Re: image
 
wie geht das installieren ? sorry hab ich noch nie gemacht

alleinherrscher 2. Okt 2009 19:22

Re: image
 
Hier die Anleitung von der Seite! Viel Erfolg! http://graphics32.org/documentation/...stallation.htm :thumb:

LEE1 2. Okt 2009 19:51

Re: image
 
so habs installiert danke^^

LEE1 2. Okt 2009 19:54

Re: image
 
sorry das ich so viele fragen stelle doch jetz kommt imma noch das vonvorhin

Die Muhkuh 2. Okt 2009 19:56

Re: image
 
Zeig mal Deinen kompletten Quelltext


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:10 Uhr.
Seite 1 von 5  1 23     Letzte »    

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