AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Gescanntes Bild transparent machen – Grafikprogramm gesucht
Thema durchsuchen
Ansicht
Themen-Optionen

Gescanntes Bild transparent machen – Grafikprogramm gesucht

Ein Thema von Andreas13 · begonnen am 27. Sep 2022 · letzter Beitrag vom 29. Sep 2022
Antwort Antwort
Seite 1 von 3  1 23      
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
711 Beiträge
 
Delphi XE5 Professional
 
#1

Gescanntes Bild transparent machen – Grafikprogramm gesucht

  Alt 27. Sep 2022, 13:51
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
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
TiGü
Online

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht

  Alt 27. Sep 2022, 14:02
Paint.net und dort dann mit Bildebenen arbeiten?

Download:
https://getpaint.net/

Wie wird's gemacht?
https://www.youtube.com/watch?v=ttaCIhpDKR0
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#3

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht

  Alt 27. Sep 2022, 14:09
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)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von PaPaNi
PaPaNi
Online

Registriert seit: 31. Mär 2022
45 Beiträge
 
#4

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht

  Alt 27. Sep 2022, 14:12
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...
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
711 Beiträge
 
Delphi XE5 Professional
 
#5

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht

  Alt 27. Sep 2022, 14:33
Vielen Dank für Eure prompte Hilfe!
Ich werde mein Glück mit Euren Empfehlungen versuchen und berichten!

Viele Grüße
Andreas
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
pesi

Registriert seit: 29. Aug 2003
Ort: 36217 Ronshausen
117 Beiträge
 
Delphi XE5 Professional
 
#6

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht

  Alt 27. Sep 2022, 14:36
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)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht

  Alt 27. Sep 2022, 14:54
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?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
711 Beiträge
 
Delphi XE5 Professional
 
#8

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht

  Alt 27. Sep 2022, 19:59
Danke auch Dir, KodeZwerg!
Von Grafik-Programmierung verstehe ich nur seeehr wenig, werde ich aber auch Deinen Vorschlag ausprobieren und über meine Erfahrung berichten.

Viele Grüße
Andreas
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht

  Alt 27. Sep 2022, 22:40
Danke auch Dir, KodeZwerg!
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!
Angehängte Dateien
Dateityp: zip LayeredImages.zip (230,3 KB, 11x aufgerufen)
Gruß vom KodeZwerg

Geändert von KodeZwerg (27. Sep 2022 um 22:58 Uhr) Grund: fixed
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht

  Alt 27. Sep 2022, 23:02
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.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 12:45 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