Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Gescanntes Bild transparent machen – Grafikprogramm gesucht (https://www.delphipraxis.net/211515-gescanntes-bild-transparent-machen-%96-grafikprogramm-gesucht.html)

Andreas13 27. Sep 2022 13:51

Gescanntes Bild transparent machen – Grafikprogramm gesucht
 
Hallo Community,
ich suche eine Software, die gescannte Files (z. B. *.BMP oder *.jpg) ganz transparent machen kann, so daß beim Übereinanderlegen zweier Bilder das darunterliegende sichtbar bleibt.

Wozu brauche ich das?

Ich habe diverse gescannte Kurvenverläufe etc. aus unterschiedlichen Quellen und möchte gerne rein "optisch" feststellen, ob die beiden Darstellungen identisch sind. Dazu möchte ich die Bilder zunächst unterschiedlich einfärben und danach bei identischer Größe übereinander legen und schauen, ob die Kurven und Meßpunkte halbwegs deckungsgleich sind.

Kennt jemand ein Programm, welches dazu in der Lage ist?

Danke Euch im Voraus!

Viele Grüße
Andreas

TiGü 27. Sep 2022 14:02

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht
 
Paint.net und dort dann mit Bildebenen arbeiten?

Download:
https://getpaint.net/

Wie wird's gemacht?
https://www.youtube.com/watch?v=ttaCIhpDKR0

himitsu 27. Sep 2022 14:09

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht
 
Nja, erstmal brauchst du was, das leichte grautöne entfernt,
also das leichte Rauschen, Flecken usw. auf dem Papier.

Sowas sollte z.B. Gimp können.


Und wenn der Hintergrund schön ein "reines" weiß ist, kannst du mit einer PNG-Komponente oder auch extern (Gimp) das Weiß ($FFFFFF) durch Transparenz ersetzen.
TBitmap kann beim Malen auch Masken, bzw. eine Transparenzfarbe behandeln. (im Paint des TImage abgucken oder im Forum suchen)

PaPaNi 27. Sep 2022 14:12

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht
 
Ich glaube, man könnte das mit Photoshop machen. Das Program unterschtützt die Layers und für jeden Layer kann man die Transparenz einstellen. Wenn ich mich nicht irre...

Andreas13 27. Sep 2022 14:33

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht
 
Vielen Dank für Eure prompte Hilfe! :thumb:
Ich werde mein Glück mit Euren Empfehlungen versuchen und berichten!

Viele Grüße
Andreas

pesi 27. Sep 2022 14:36

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht
 
Noch eine Stimme für paint.net
Klein, praktisch, kostenlos und vom Funktionsumfang her überschaubar und daher für Einsteiger auch schnell zu nutzen (wenn man sich mal mit Ebenen beschäftigt hat oder sich das mal vorher anschaut)

KodeZwerg 27. Sep 2022 14:54

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht
 
Innerhalb Delphi, habs nicht probiert aber sollte machbar sein, meine theorie ->
Erstelle 2 x eine Form mit einem TImage (alClient) drauf und einem TTrackBar (alBottom).
Setze jeweils der TTrackBar einen gültigen Wert von 0 bis 255.
Den TTrackBar mit der AlphaBlendValue der Form verknüpfen und AlphaBlend auf True setzen.
Beide Formulare exakt übereinander setzen lassen und welche Form auch immer oben ist, mit dem TTrackBar stückchenweise transparent machen.
Hilft das weiter?

Andreas13 27. Sep 2022 19:59

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht
 
Danke auch Dir, KodeZwerg! :thumb:
Von Grafik-Programmierung verstehe ich nur seeehr wenig, werde ich aber auch Deinen Vorschlag ausprobieren und über meine Erfahrung berichten.

Viele Grüße
Andreas

KodeZwerg 27. Sep 2022 22:40

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Andreas13 (Beitrag 1512556)
Danke auch Dir, KodeZwerg! :thumb:
Von Grafik-Programmierung verstehe ich nur seeehr wenig, werde ich aber auch Deinen Vorschlag ausprobieren und über meine Erfahrung berichten.

Viele Grüße
Andreas

Im Anhang wäre meine Umsetzung dieses Projekt's.
Quelltext und ein mit TurboDelphi erstelltes Kompilat ist dabei, es scheint so als ob es nur BMP kann aber als Demonstration reicht es alle male aus.
Bedienung:
Starte "LayeredImages.exe" und es erscheint ein minimales Form auf dem Desktop mit nur einem Knopf.
Drück den Knopf und es wird zwei mal hintereinander ein Öffnen Dialog dargestellt bei dem du je eine Datei aussuchen kannst.
Wenn dies geklappt hat werden zwei Formulare überlappend dargestellt.
Beide besitzen eine TrackBar um die Transparenz zu beeinflussen.
Was auch immer oben sein mag, das darunter liegende wird sichtbar umso mehr du die TrackBar nach links ziehst.

Vielleicht hilft es Dir, viel Glück!

KodeZwerg 27. Sep 2022 23:02

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht
 
PS: Das wäre nur der Quelltext ->
Delphi-Quellcode:
unit uMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ExtCtrls, ExtDlgs, StdCtrls;

type
  TfrmMain = class(TForm)
    btnGo: TButton;
    procedure btnGoClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    FFileA, FFileB: string;
    FFormA, FFormB: TForm;
    FImageA, FImageB: TImage;
    FTrackBarA, FTrackBarB: TTrackBar;
    function GetImageFilename: string;
    procedure TrackBarAChange(Sender: TObject);
    procedure TrackBarBChange(Sender: TObject);
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

procedure TfrmMain.FormCreate(Sender: TObject);
begin
  FFormA := TForm.Create(Self);
  try
    FFormA.Parent := Self.Parent;
    FFormA.Height := 800;
    FFormA.Width := 800;
    FFormA.Position := poScreenCenter;
    FFormA.BorderStyle := bsDialog;
    FFormA.AlphaBlend := True;
    FFormA.Visible := False;
    FImageA := TImage.Create(FFormA);
    try
      FImageA.Parent := FFormA;
      FImageA.Align := alClient;
      FImageA.Stretch := True;
      FTrackBarA := TTrackBar.Create(FFormA);
      try
        FTrackBarA.Parent := FFormA;
        FTrackBarA.Align := alBottom;
        FTrackBarA.Min := 0;
        FTrackBarA.Max := 255;
        FTrackBarA.Position := 255;
        FTrackBarA.OnChange := TrackBarAChange;
      finally
//        FTrackBarA.Free;
      end;
    finally
//      FImageA.Free;
    end;
  finally
//    FFormA.Free;
  end;
  FFormB := TForm.Create(Self);
  try
    FFormB.Parent := Self.Parent;
    FFormB.Height := 800;
    FFormB.Width := 800;
    FFormB.Position := poScreenCenter;
    FFormB.BorderStyle := bsDialog;
    FFormB.AlphaBlend := True;
    FFormB.Visible := False;
    FImageB := TImage.Create(FFormB);
    try
      FImageB.Parent := FFormB;
      FImageB.Align := alClient;
      FImageB.Stretch := True;
      FTrackBarB := TTrackBar.Create(FFormB);
      try
        FTrackBarB.Parent := FFormB;
        FTrackBarB.Align := alBottom;
        FTrackBarB.Min := 0;
        FTrackBarB.Max := 255;
        FTrackBarB.Position := 255;
        FTrackBarB.OnChange := TrackBarBChange;
      finally
//        FTrackBarB.Free;
      end;
    finally
//      FImageB.Free;
    end;
  finally
//    FFormB.Free;
  end;
end;

procedure TfrmMain.FormDestroy(Sender: TObject);
begin
  FTrackBarB.Free;
  FImageB.Free;
  FFormB.Free;
  FTrackBarA.Free;
  FImageA.Free;
  FFormA.Free;
end;

procedure TfrmMain.TrackBarAChange(Sender: TObject);
begin
  FFormA.AlphaBlendValue := (Sender As TTrackBar).Position;
end;

procedure TfrmMain.TrackBarBChange(Sender: TObject);
begin
  FFormB.AlphaBlendValue := (Sender As TTrackBar).Position;
end;

function TfrmMain.GetImageFilename: string;
var
  dlg: TOpenPictureDialog;
begin
  Result := '';
  dlg := TOpenPictureDialog.Create(Self);
  try
    dlg.Options := [ofPathMustExist, ofFileMustExist, ofDontAddToRecent, ofForceShowHidden];
    if dlg.Execute(Self.Handle) then
      Result := dlg.FileName;
  finally
    dlg.Free;
  end;
end;

procedure TfrmMain.btnGoClick(Sender: TObject);
begin
  FFileA := GetImageFilename;
  if FFileA = '' then
    Exit;
  FFileB := GetImageFilename;
  if FFileB = '' then
    Exit;
  FFormA.Caption := FFileA;
  try
    FImageA.Picture.LoadFromFile(FFileA);
  except
    Exit;
  end;
  FFormB.Caption := FFileB;
  try
    FImageB.Picture.LoadFromFile(FFileB);
  except
    Exit;
  end;
  FFormA.Position := poScreenCenter;
  FFormB.Position := poScreenCenter;
  FFormA.Visible := True;
  FFormB.Visible := True;
end;

end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:14 Uhr.
Seite 1 von 3  1 23      

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