AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Bilder schneiden / zuschneiden
Thema durchsuchen
Ansicht
Themen-Optionen

Bilder schneiden / zuschneiden

Ein Thema von dutyfree · begonnen am 17. Mär 2009 · letzter Beitrag vom 29. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
dutyfree

Registriert seit: 9. Mär 2009
83 Beiträge
 
#1

Bilder schneiden / zuschneiden

  Alt 17. Mär 2009, 17:51
Nabend,
ich bräuchte mal Hilfe:

Ich will ein kleines Tool schneiden was Bilder selbstständig zurecht schneidet.
Dafür muesste ich folgendes Wissen:

ich habe den Pfad zum Bild, ich habe die Aufloesung des Bildes, weiss wie groß der Ausschnit sein soll und an welcher Position (Pixel) und ich weiss an welchen Eckpunkten (Pixel) das Bild geschnitten werden soll. (Also ein Viereck).
Jetzt kommts zum groeßren und glaube ich auch sehr komplexen Problem. Ich weiss nicht wie ich das anstellen soll.

Gegoogelt habe ich schon. Es reicht mir halt nicht das Bild einfach zu verkleinern, sondern es soll an den Seiten ein Rand "abgeschnitten" werden.

Ja, wär schoen wenn ihr mir helfen koennt. Quellcode wäre naatürlich am schönste.
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Bilder schneiden

  Alt 17. Mär 2009, 17:53
Guck dir mal die Funktion TBitmap.Canvas.CopyRect an, die macht genau das, was du willst.
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Bilder schneiden

  Alt 17. Mär 2009, 17:54
Wenn ich das richtig verstanden habe, wäre TCanvas.CopyRect eine Lösung.

[edit] Damit das jetzt nicht ganz so blöde dasteht, werfe ich noch zusätzlich BitBlt() in den Raum. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
dutyfree

Registriert seit: 9. Mär 2009
83 Beiträge
 
#4

Re: Bilder schneiden / zuschneiden

  Alt 17. Mär 2009, 17:56
Yay, sau schnell. Danke, werds mir mal angucken.

Edit:

Könntet ihr das bitte nochmal für einen Anfänger etwas genauer erklären?

Also ich hab jetzt ein TImage und im Code ein "image1.Canvas.CopyRect()" Was muss ich als Paramter eingeben?
Also gehen wir davon aus, ich hab ein Bild von von Pixel (20|30) soll zu (30|50) ein Rechteck erstellt werden und der Bereich ausgeschnitten werden.
  Mit Zitat antworten Zitat
Cicaro

Registriert seit: 9. Feb 2005
285 Beiträge
 
Delphi 7 Personal
 
#5

Re: Bilder schneiden / zuschneiden

  Alt 18. Mär 2009, 12:13
Für CopyRect():
Delphi-Quellcode:
var
  von, nach: TRect;
begin
  von := Rect(x, y, x + breite, y + hoehe);
  nach := Rect(x, y, x + breite, y + hoehe);

  // von image2 auf image1 kopieren
  image1.Canvas.CopyRect(nach, image2.Canvas, von);
end;
Für BitBlt():
Delphi-Quellcode:
begin
  Windows.BitBlt(image1.Canvas.Handle, x, y, breite, hoehe, image2.Canvas.Handle, x, y, SRCCOPY);
end;
BitBlt() arbeitet schneller als CopyRect, da es direkt an die Windows-Bibliothek geleitet wird (CopyRect nimmt noch einen Umweg durch die Delphi-Library ^^).
  Mit Zitat antworten Zitat
dutyfree

Registriert seit: 9. Mär 2009
83 Beiträge
 
#6

Re: Bilder schneiden / zuschneiden

  Alt 28. Mär 2009, 18:14
Danke, bekomm leider diese Fehlermeldung, wenn ich ein .jpg zurechtschneiden will. Wie kann ich das beheben?

http://www.abload.de/img/28-03-2009_19-12-27l4by.jpg
Miniaturansicht angehängter Grafiken
28-03-2009_19-12-27l4by.jpg  

Geändert von TBx (23. Apr 2017 um 18:36 Uhr) Grund: Verlinkte Fehlermeldung angehängt
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Bilder schneiden / zuschneiden

  Alt 28. Mär 2009, 18:35
Hallo,

hast du das JPEG vorher in ein Bitmap umgewandelt?

Nach dem Laden des Jpegs das hier ausführen:
Bitmap.Assign(JpegImage); Gruß
Jürgen
Jürgen Höfs
  Mit Zitat antworten Zitat
dutyfree

Registriert seit: 9. Mär 2009
83 Beiträge
 
#8

Re: Bilder schneiden / zuschneiden

  Alt 29. Mär 2009, 12:50
Ah.. jetzt gehts ;D
Hätte aber noch 2 probleme:

1. Wie kann ich die Größe eines BMP pder JPG Bildes ermitteln (Pixel)
2. Wenn ich ein Bild speicher, was ich in ein timage gezogen habe, wird auch nur der bereich gespeichert, der auch angezeigt wird. Kann man das ändern?
  Mit Zitat antworten Zitat
Pfoto

Registriert seit: 26. Aug 2005
Ort: Daun
541 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Bilder schneiden / zuschneiden

  Alt 29. Mär 2009, 13:27
das müsste so gehen:
Delphi-Quellcode:
{ Breite des Bildes (nicht von Image1) }
PicWidth:= Image1.Picture.Width;
{ speichern }
Image1.Picture.SaveToFile('Dateiname.bmp')
Gruß
Jürgen
Jürgen Höfs
  Mit Zitat antworten Zitat
dutyfree

Registriert seit: 9. Mär 2009
83 Beiträge
 
#10

Re: Bilder schneiden / zuschneiden

  Alt 29. Mär 2009, 13:45
danke, werds testen, die erste frage hat sich auch erledigt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:54 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