Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi jpeg/jpg bearbeiten (https://www.delphipraxis.net/89388-jpeg-jpg-bearbeiten.html)

endeffects 30. Mär 2007 12:16


jpeg/jpg bearbeiten
 
Hallo,

ich möchte gern eine jpg datei in meinem programm laden und am
unteren ende des bildes eine bildzeile mit einem farbcode hinzufügen.
anschließend möchte ich die datei wieder speichern.

wirklich weit bin ich bisher allerdings nicht gekommen:

Delphi-Quellcode:
  var jpg: TJPEGImage;
  begin
    jpg := TJPEGImage.Create;
    try
      jpg.LoadFromFile(SourceFile);
      .....
      ??????????????
      .....
      jpg.SaveToFile(SourceFile);
    finally
      jpg.Free
    end;
  end;
kann mir vielleicht jemand sagen wie ich nun vorzugehen habe? *ratlosguck*

mfg

SirThornberry 30. Mär 2007 12:20

Re: jpeg/jpg bearbeiten
 
was verstehst du unter einem farbcode? willst du das bild um ein pixel in der höher erweitern und in der untersten Pixelreihe was einfärben?

endeffects 30. Mär 2007 12:26

Re: jpeg/jpg bearbeiten
 
ja genau, so soll das ablaufen =)

SirThornberry 30. Mär 2007 12:27

Re: jpeg/jpg bearbeiten
 
Da ein JPEG aber nicht mit Zeilen/Spalten gespeichert wird dürfte das unmöglich sein. Denn durch kompression kann es passieren das deine Farbe dann in die oberen Zeilen übergeht.

endeffects 30. Mär 2007 12:30

Re: jpeg/jpg bearbeiten
 
es geht ja nur darum das man das dann auf dem ausdruck erkennt
und entsprechend auswerten kann

LizardKaiser 30. Mär 2007 13:17

Re: jpeg/jpg bearbeiten
 
Hilfe: TBitmap, TBitmap.Assign, Canvas.Pen

Namenloser 30. Mär 2007 13:51

Re: jpeg/jpg bearbeiten
 
Zitat:

Zitat von LizardKaiser
TBitmap.Assign

Man kann (sofern man die unit jpeg eingebunden hat) auch direkt ein jpeg in ein bitmap laden und sich so das assign sparen. (geht mit gif genau so)

TeronG 30. Mär 2007 14:16

Re: jpeg/jpg bearbeiten
 
Das Malen sollte kein Problem sein ...

Höhe des Bildes "herausfinden" (TBitmap.Height), um eins erhöhen und dann letzte zeile einfach mit TBitmap.ScanLine[höhe-1] "einlesen" und bearbeiten. (Wenn Zeile einfarbig sein soll ist .Pen warscheinlich einfacher als .ScanLine)

Nur befürchte ich (wie auch SirThornberry schon schrieb), daß die Kompression das Ergebniss verfälschen wird.
Einfach mal Testen (evtl. auch mal mehrere Zeilen anfügen) oder auf BMP umsteigen oder so ^^

Neutral General 30. Mär 2007 14:24

Re: jpeg/jpg bearbeiten
 
Hi,

Hab es getestet. Er will es so das jeder Pixel zufällig um einen Farbwert nach oben oder unten geändert wird. Also von (255,255,255) z.B auf (254,254,254) und das Problem war wie zu erwarten natürlich die jpg-Kompression.

Gruß
Neutral General


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 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