![]() |
Teile eines images kopieren und in anderes image einfügen
Hi,
wie kann ich ein Teil eines Images kopieren und in ein anderes image einfügen? |
Re: Teile eines images kopieren und in anderes image einfüge
wer die hilfe benutzt wird fündig..
Die Methode CopyRect kopiert einen Teil eines Bildes aus einer anderen Zeichenfläche in die Zeichenfläche. Delphi-Syntax: procedure CopyRect(const Dest: TRect; Canvas: TCanvas; const Source: TRect); C++ Syntax: void __fastcall CopyRect(const TRect &Dest, TCanvas* Canvas, const TRect &Source); Beschreibung Mit CopyRect können Sie einen Teil eines Bildes aus einer anderen Zeichenfläche in das Bild des TCanvas-Objekts kopieren. Die Eigenschaft Dest legt fest, in welches Rechteck innerhalb der Zeichenfläche das Quellbild kopiert werden soll. Der Parameter Canvas gibt die Zeichenfläche an, die das zu kopierende Bild enthält. Source legt das Rechteck fest, das den zu kopierenden Teil der Zeichenfläche enthält. Der Kopiervorgang erfolgt in dem Modus, der durch CopyMode festgelegt ist. |
Re: Teile eines images kopieren und in anderes image einfüge
Also wenn ich jetzt in image2, ein rechteck gräße 105*105 von image1 kopieren möchte,
wie mach ich das dann? |
Re: Teile eines images kopieren und in anderes image einfüge
steht doch alles da was du brauchst :(
|
Re: Teile eines images kopieren und in anderes image einfüge
such mal in der oh unter Copyrect ) -- delphihilfe ..
edit: jeden tag freu ich mich mehr auf die verwirklichung von luckies "hilfeverweis" ... |
Re: Teile eines images kopieren und in anderes image einfüge
ich bekomm es aber nicht hin..
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var a,b : Trect; begin a := rect(0,105,0,0); b := rect(0,105,0,0); image2.canvas.CopyRect(a,image1.picture.bitmap.canvas,b); end; |
Re: Teile eines images kopieren und in anderes image einfüge
ok ich proggs schnell
|
Re: Teile eines images kopieren und in anderes image einfüge
:hi:
In der Hilfe liegt ein Beispiel :) mfg Tobias |
Re: Teile eines images kopieren und in anderes image einfüge
das hab ich ja getestet, deswegen komm ich ja nicht weiter
|
Re: Teile eines images kopieren und in anderes image einfüge
doch nicht
weil besser erklären als die hilfe kann ichs auch nicht
Delphi-Quellcode:
procedure CopyRect(const Dest: TRect; Canvas: TCanvas; const Source: TRect);
Zitat:
--> Dest = Wohinein es kopiert werden soll, Canvas üebrwelche Canvas as ganze laufen soll, source von welchen rect es sein soll ^^ |
Re: Teile eines images kopieren und in anderes image einfüge
"var
a,b : Trect; begin a := rect(0,105,0,0); b := rect(0,105,0,0); image2.canvas.CopyRect(a,image1.picture.bitmap.can vas,b); end;" das kann ja nicht gehn :? a, b nehmen das ganze ja von der canvas des Forms! du musst es mit einem Rect AUS dem image nehmen :stupid: |
Re: Teile eines images kopieren und in anderes image einfüge
Hallo
Zitat:
wenn du für left und right 0 angibst, was glaubst du wird kopiert, eine spalte mit 0Pixeln-breite ? Der code ist richtig, nur definierst du das rechteck falsch. Mfg Frank |
Re: Teile eines images kopieren und in anderes image einfüge
und wie mach ich das?
Delphi-Quellcode:
geht auch nicht
procedure TForm1.Button1Click(Sender: TObject);
var a,b : Trect; begin a := rect(0,0,105,105); b := rect(0,0,105,105); image2.canvas.CopyRect(a,image1.picture.bitmap.canvas,b); end; |
Re: Teile eines images kopieren und in anderes image einfüge
:kotz:
|
Re: Teile eines images kopieren und in anderes image einfüge
ok dann halt der code ...
Delphi-Quellcode:
var i,j:integer;
Bild,teilBild:TBitmap; Bild:=TBitmapo.create(); bild.loadfromfile('c:\....'); For i:=0 to AnzahlX do For j:=0 to ANzahlY do begin teilBild:=TBitmap.create(); teilbild.copyrect(round(bild.width/AnzahlX*i),round(bild.height/AnzahlY*j), round(bild.width/AnzahlX*(i+1)),round(bild.height/AnzahlY*(j+1), bild); teilbild.savetofile(....); teilbild.free; end; |
Re: Teile eines images kopieren und in anderes image einfüge
Delphi-Quellcode:
ist das wirklich so schwer?
a := rect(100,100,200,200);
b := rect(links,oben,rechts,unten); |
Re: Teile eines images kopieren und in anderes image einfüge
aber er braucht es auch vom image das ist sein problem s.h mein post)
|
Re: Teile eines images kopieren und in anderes image einfüge
mah, das funktioniert nicht, und ich verstehe es nicht
|
Re: Teile eines images kopieren und in anderes image einfüge
:cry: ich kann auch nicht mehr amchen als das posten was bei mir geht :|
|
Re: Teile eines images kopieren und in anderes image einfüge
aso du musst natürlich kein bmp machen ich hab den code nur von nem prog kopiert
du nimmst statt bild zb image 1 :roll: |
Re: Teile eines images kopieren und in anderes image einfüge
Zitat:
- kein resourcenschutzblock bei bild:=tbitmap.create - die copyrectfktn ist auch nicht korrekt - teilbild: warum immer in der schleife erzeugen? einmal reicht - teilbild: größe wird nicht gesetzt, du kannst kopieren was du willst und wirst nichts sehen - evtl fehlt noch das pixelformat für die teilbitmap |
Re: Teile eines images kopieren und in anderes image einfüge
es geht nicht...
ich möchte von einem großen bild...ein teilstück in ein zweites image, welches leer ist copieren... vom ersten bild soll das ein Stück von 105*105 pixeln sein! |
Re: Teile eines images kopieren und in anderes image einfüge
ich habs hier vom board kopiert und es geht ... der ist ja gekürzt ^^ deine teiel musst du schon ausstauschen :roll:
|
Re: Teile eines images kopieren und in anderes image einfüge
Delphi-Quellcode:
x und y geben die" Spalte und zeile" vom image 1 an
a := rect(0,0,105,105); //destrect
b := rect(x*105,y*105,(x+1)*105,(y+1)*105); //srcrect |
Re: Teile eines images kopieren und in anderes image einfüge
@nicodius:bei mir gehts nicht, meldungen wie trect und int64 inkopatible typen u.s.w. ca 6 stück
keldorn: und der aufruf? |
Re: Teile eines images kopieren und in anderes image einfüge
nur mal so ne frage hast du
Delphi-Quellcode:
auch geschireben sonst versteh ichs nicht :roll:
var a : TRect;
b : TRect |
Re: Teile eines images kopieren und in anderes image einfüge
Zitat:
|
Re: Teile eines images kopieren und in anderes image einfüge
kann mir nicht mal jemand nen code schreiben der funktioniert, ich verstehe jetzt rein garncihts mehr...noch weniger wie vprher
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer; Bild,teilBild:TBitmap; begin bild.loadfromfile('c:\jack.bmp'); For i:=0 to 1 do For j:=0 to 1 do begin teilBild:=TBitmap.create(); image2.canvas.copyrect(round(bild.width/1*i),round(bild.height/1*j), round(bild.width/1*(i+1)),round(bild.height/11*(j+1), bild); teilbild.savetofile('c:\jacktemp.bmp'); teilbild.free; end; |
Re: Teile eines images kopieren und in anderes image einfüge
DANN POSTE DOCH DIENEN CODE !
edit: sorry aber .. warum kannst du nicht einfach deinen code posten dann ists leichter?! :cry: |
Re: Teile eines images kopieren und in anderes image einfüge
hab ich oben
|
Re: Teile eines images kopieren und in anderes image einfüge
ja dann ... du sagtest du hast deine bilder in 2 images...
jetzt holst du es erst wieder vonner datei wie soll man dir so helfen könenn? |
Re: Teile eines images kopieren und in anderes image einfüge
du hast gesagt ioch soll deinen code nehmen, also hab ich das gemacht...
ausserdem bleiben die fehler die gleichen was soll ich denn nu machen? |
Re: Teile eines images kopieren und in anderes image einfüge
überlegen wär mal nich schlecht ( sorry )
aber normal kommt man ALLEINE nur mit der delphi hilfe auf die lösung ! :cheers: |
Re: Teile eines images kopieren und in anderes image einfüge
ja aber vielleicht kann ich es einfach nicht, weil ich von dem ganzen noch nichts verstehe...
für mich ist das alles nur bahnhof! ich brauche ein für mich zugeschnittenes demo... |
Re: Teile eines images kopieren und in anderes image einfüge
Mit diesem Code geht es wunderbar...
Allerdings sind hier keine Errorroutinen drin.
Delphi-Quellcode:
:dp:
var Bitmap:TBitmap;
// Bitmap ist das ZIEL-Bitmap... // MeinBitmap mußt Du vorher erstellt und geladen haben.. Bitmap:=TBitmap.Create; Bitmap.Width:=400; Bitmap.Height:=400; Bitmap.Canvas.CopyRect(Rect(0,0,200,200), MeinBitmap.Canvas, Rect(0,0,200,200)); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:59 Uhr. |
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