Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

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 3. Okt 2009 11:14

Re: image
 
ok hier ist der code
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,GR32, GR32_Image;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Image321: TImage32;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation
   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;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var aBmp32:TBitmap32;
begin

aBmp32:=TBitmap32.create; //erstmal das Objekt erstellen
aBmp32.loadfromfile('cover.bmp');
PaintCover(Image321.Bitmap,0,0,50,50,0.5,30,aBmp32)

end;

end.

alleinherrscher 3. Okt 2009 11:27

Re: image
 
Sry, hab noch vergessen, das Bitmap in Image321 zu erstellen.

Ersetz den Code von Button1Click mal bitte durch diesen hier:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var aBmp32:TBitmap32;
begin

aBmp32:=TBitmap32.create; //erstmal das Objekt erstellen
aBmp32.loadfromfile('c:\Test.bmp');
Image321.Bitmap:=tbitmap32.create;
Image321.Bitmap.Width:=image321.clientWidth;
Image321.bitmap.height:=image321.clientheight;
PaintCover(Image321.Bitmap,1,1,150,150,0.5,30,aBmp32)

end;

LEE1 3. Okt 2009 11:35

Re: image
 
Liste der Anhänge anzeigen (Anzahl: 1)
juhu es klappt doch beim zweiten start passierte dies hier

(problem hab ich sau oft)

hugo1990 3. Okt 2009 11:44

Re: image
 
Dann wird das Programm noch im Hintergrund laufen und du möchtest neu kompilieren, da das Programm aber noch läuft, kann die exe-Datei nicht überschrieben werden.

LEE1 3. Okt 2009 11:45

Re: image
 
es läuft aber nidd mehr

DeddyH 3. Okt 2009 11:45

Re: image
 
Da kommt aber doch normalerweise "Quellcode wurde geändert. Neu kompilieren?" oder so ähnlich :gruebel:

[edit] @LEE1: Hast Du es mal mit "Projekt erzeugen" versucht? [/edit]

LEE1 3. Okt 2009 11:47

Re: image
 
ja geht aber auch nidd hab delphi mal geschlossen un 3 min gewartet geht ava immer noch nidd

alleinherrscher 3. Okt 2009 11:48

Re: image
 
Zitat:

Zitat von DeddyH
Da kommt aber doch normalerweise "Quellcode wurde geändert. Neu kompilieren?" oder so ähnlich :gruebel:

[edit] @LEE1: Hast Du es mal mit "Projekt erzeugen" versucht? [/edit]


Also bei mir zeigt er den Fehler an, wenn ich z.B. das Verzeichnis, in welchem das Programm kompiliert habe, im Netzwerk freigegeben habe und die exe auf einem Netzwerkrechner noch läuft. Dann hat Delphi quasi keine Schreib bzw. Löschrechte für die alte echse...

haentschman 3. Okt 2009 11:48

Re: image
 
...nicht immer. Nur wenn das Programm am Breakpoint angehalten wurde und der Quellcode verändert ist kommt diese Meldung.

Beim normalen "Neucompilieren" weigert sich Delphi die laufende Exe zu überschreiben (logisch) :zwinker:

upps...
Bezug auf "Quellcode wurde geändert. Neu kompilieren?"

DeddyH 3. Okt 2009 11:49

Re: image
 
Schreibrechte hast Du in den entsprechenden Verzeichnissen (Ausgabe- und Source-Verzeichnis)? Geht es als Admin?


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:45 Uhr.
Seite 4 von 5   « Erste     234 5      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz