AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia PNG - Image mit Transparenz in Clipboard
Thema durchsuchen
Ansicht
Themen-Optionen

PNG - Image mit Transparenz in Clipboard

Ein Thema von geesmith · begonnen am 27. Mär 2014 · letzter Beitrag vom 14. Dez 2018
Antwort Antwort
Perlsau
(Gast)

n/a Beiträge
 
#1

AW: PNG - Image mit Transparenz in Clipboard

  Alt 27. Mär 2014, 17:58
Wenn du das PNG-Bild innerhalb derselben Anwendung kopieren willst, brauchst du kein Clipboard.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#2

AW: PNG - Image mit Transparenz in Clipboard

  Alt 27. Mär 2014, 18:48
Wenn du ein PngImage in das Clipboard schreibst, dann wird das dort als simple Bitmap abgelegt. Dabei geht die Transparenz bzw. das Alphablend verloren.

Übrigens verwendet Clipboard.Assign indirekt genau die Methode SaveToClipboardFormat.

Selbst wenn du jetzt ein Clipboardformat registrieren würdest, das PNG unterstützt, dann müsste dieses Format ja auch im Zielprogramm implementiert sein. Für Excel ist das aber soweit ich weiß nicht der Fall.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
geesmith

Registriert seit: 17. Jan 2003
Ort: Frauenfeld
32 Beiträge
 
Delphi XE5 Architect
 
#3

AW: PNG - Image mit Transparenz in Clipboard

  Alt 27. Mär 2014, 19:59
Uwe hat recht... icht hab nach einer Applikation gesucht in der ich per Cut and Paste ein Bild mit Transparenz rüber nehmen kann. Ich hatte nicht realisiert, dass ich das noch nie gesehen habe. Danke für die Aufklärung.

@Perlsau
Ich habe Excel geöffnet und möchte von einem parallel laufenden Delphiprogramm ein Bild mit Transparenz ins Excel übernehmen. Das ist das Ziel.

@himitsu
Interessanter Gedanke ...denke aber mittlerweile dass Clipboard das gar nicht kann (siehe Comment von Uwe)

Ich glaube ich kann das Ziel nicht erreichen.

Geändert von geesmith (27. Mär 2014 um 20:02 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.055 Beiträge
 
Delphi 12 Athens
 
#4

AW: PNG - Image mit Transparenz in Clipboard

  Alt 28. Mär 2014, 09:58
Das ist kein Problem. Ich glaube mich zu erinnern, dass sogar Excel 2003 schon das PNG Format unterstützt hat. Kopieren geht auch sehr einfach über die API (im Test mit einem TImage namens Image1 mit einem geladenen PNG):
Delphi-Quellcode:
var
  DataStream: TMemoryStream;
  Data: Pointer;
  DataHandle: THandle;
  ClipboardFormat: Integer;
begin
  // Das Format sollte man natürlich eher nur beim Start der Anwendung einmal registrieren
  ClipboardFormat := RegisterClipboardFormat('PNG');
  DataStream := TMemoryStream.Create;
  try
    // Die Bilddaten können natürlich auch direkt aus einer Datei usw. stammen
    Image1.Picture.Graphic.SaveToStream(DataStream);

    DataHandle := GlobalAlloc(GMEM_DDESHARE, DataStream.Size);
    Data := GlobalLock(DataHandle);
    try
      DataStream.Position := 0;
      DataStream.ReadBuffer(Data^, DataStream.Size);
    finally
      GlobalUnlock(DataHandle);
    end;
    Clipboard.Open;
    Clipboard.SetAsHandle(ClipboardFormat, DataHandle);
    Clipboard.Close;
  finally
    DataStream.Free;
  end;
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: PNG - Image mit Transparenz in Clipboard

  Alt 28. Mär 2014, 10:07
Für die Programme, welche PNG nicht können, könnte man ja zusätzlich noch das Bitmap anbieten.

In das Clipboard passen ja gleichzeitig mehrere Formate rein, wo sich dann jedes Ziel das aussucht, was es versteht.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#6

AW: PNG - Image mit Transparenz in Clipboard

  Alt 28. Mär 2014, 10:21
Ich glaube mich zu erinnern, dass sogar Excel 2003 schon das PNG Format unterstützt hat.
Probieren geht bekanntlich über studieren. Meine Aussage stützt sich lediglich auf diese Auflistung: Excel Clipboard Formats
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.055 Beiträge
 
Delphi 12 Athens
 
#7

AW: PNG - Image mit Transparenz in Clipboard

  Alt 28. Mär 2014, 10:26
Ausprobiert habe ich es übrigens mit Excel 2010, da geht es.

Für die Programme, welche PNG nicht können, könnte man ja zusätzlich noch das Bitmap anbieten.
Das ist auch wichtig, ja.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
geesmith

Registriert seit: 17. Jan 2003
Ort: Frauenfeld
32 Beiträge
 
Delphi XE5 Architect
 
#8

AW: PNG - Image mit Transparenz in Clipboard

  Alt 28. Mär 2014, 20:18
Wow, echt cool. Das funktioniert!

An TMemoryStream hatte ich nicht gedacht.

Vielen Dank jaenicke!
  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 09:59 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