Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ein kleineres image gezielt in ein groesseres kopieren? (https://www.delphipraxis.net/61055-ein-kleineres-image-gezielt-ein-groesseres-kopieren.html)

richard_boderich 16. Jan 2006 15:16


ein kleineres image gezielt in ein groesseres kopieren?
 
hallo!

ich habe zwei TImage objecte ein kleines und ein großes. ich wuerde jetz gern den bildinhalt
des kleineren an eine bestimmte stelle in den bildinhalt des groesseren kopieren.
ich denke das ich da irgendwie über die bitmaps der beiden timage gehen muss. jedoch weis ich nicht
wie ich die bildinformation an eine bestimmte stelle des groesseren zielbitmaps einfuegen kann.
waere nett wen jemand einen ansatz haette. fuer das koordinatenproblem. wichtig ist noch, das das
kleinere bild transparent dargestellt werden soll. das heist sein hintergrund soll der inhalt der grossen bitmap sein. schonmal danke im vorraus an euch fuer eure zeit.

Richard

DGL-luke 16. Jan 2006 15:20

Re: ein kleineres image gezielt in ein groesseres kopieren?
 
na dann such mal nach Delphi-Referenz durchsuchenTCanvas.Draw bzw. Delphi-Referenz durchsuchenTCanvas.Stretchdraw.

Delphi-Referenz durchsuchenbitblt gibts auch noch.

Khabarakh 16. Jan 2006 15:25

Re: ein kleineres image gezielt in ein groesseres kopieren?
 
Für Chroma-Key-Transparenz (was du wohl benötigst) gibt es noch MSDN-Library durchsuchenTransparentBlt.

richard_boderich 16. Jan 2006 15:36

Re: ein kleineres image gezielt in ein groesseres kopieren?
 
aus der msdn zu TransparentBlt

Zitat:

If the source and destination rectangles are not the same size, the source bitmap is stretched to match the destination rectangle
es geht also nicht da er die bildinformation an die groesse des zielbimaps anpasst, was er jedoch nich tun soll.

Khabarakh 16. Jan 2006 15:43

Re: ein kleineres image gezielt in ein groesseres kopieren?
 
Was hindert dich daran, ein anderes Destination-Rechteck als die gesamte Bitmap-Größe anzugeben, sodass eben nichts gestreckt wird?

PS: In deiner Sig sind zwei Plenks.

richard_boderich 16. Jan 2006 16:12

Re: ein kleineres image gezielt in ein groesseres kopieren?
 
mhh ok khabarak,

also hab es jetzt mit canvas.draw probiert und es geht nicht. er sagt immer das die funktion nur ausgefuerht werden kann ,wenn das imageobject eine bitmap enthaelt. es zeigt aber ein icon an.
ich dachte nun das es trotzdem eine leere bitmap hat aber nix is.

also werd ich doch mal deinen vorschlag aufgreifen ;)

btw. was meinst du eigentlich mit plenks?

Richard

richard_boderich 16. Jan 2006 16:24

Re: ein kleineres image gezielt in ein groesseres kopieren?
 
@khabarak,

hab jetzt die api funktion probiert. ist genau dasselbe. krieg zur laufzeit ne exeption
operation kann nur durchgefuehrt werden wenn das object ein bitmap enthaelt. hab das jetzt so probiert.

Delphi-Quellcode:
TransparentBlt(
  image8.canvas.handle,       // handle to destination DC
  0,  // x-coord of destination upper-left corner
  0,  // y-coord of destination upper-left corner
  20,    // width of destination rectangle
  20,   // height of destination rectangle
  image7.canvas.handle,        // handle to source DC
  0,   // x-coord of source upper-left corner
  0,   // y-coord of source upper-left corner
  20,     // width of source rectangle
  20,   // height of source rectangle
  0  // color to make transparent
);

turboPASCAL 16. Jan 2006 16:27

Re: ein kleineres image gezielt in ein groesseres kopieren?
 
Äh, nicht den Image.Canvas verwenden, sondern Image.Picture.Canvas !

kommt nun noch darauf an, Image.Picture.Bitmap wenn das Imageobject ein Bitmap enthält oder im anderem Fall z.B. bei Jpeg-Grafiken Image.Picture.Graphic

richard_boderich 16. Jan 2006 16:41

Re: ein kleineres image gezielt in ein groesseres kopieren?
 
qturbopascal ein tpicture object hat doch keine canvas oder?


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:20 Uhr.

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