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
pesi

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

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.691 Beiträge
 
Delphi 11 Alexandria
 
#2

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
730 Beiträge
 
Delphi XE5 Professional
 
#3

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.691 Beiträge
 
Delphi 11 Alexandria
 
#4

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.691 Beiträge
 
Delphi 11 Alexandria
 
#5

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
Andreas13

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

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht

  Alt 28. Sep 2022, 09:53
Hallo KodeZwerg,
ab sofort bist Du für mich der KodeRIESE! Dein Programm funktioniert exzellent!

Vielen-vielen Dank für Deine & und Eure Hilfe und für alle Tipps!

Ihr habt mir sehr geholfen!

Danke & 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.691 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Gescanntes Bild transparent machen – Grafikprogramm gesucht

  Alt 28. Sep 2022, 10:19
Hallo Andreas, das freut mich wenn ich Dir damit eine Freude bereiten konnte.
Ich glaube in dem TurboDelphi müsste man manuell "JPEG" "PNG" usw units einbinden für mehr Dateiformate... aber ist zu lange her
Ist halt nur auf die schnelle runtergetippst, kann man bestimmt noch eleganter machen aber es erspart einem eine Graphic-Anwendung zu installieren die das selbe macht
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:03 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