2010-02-16 20 views
7

Uso di Delphi 2010 Vorrei copiare un'immagine PNG negli Appunti preservando la trasparenza alfa. Sfortunatamente, il metodo TPngImage.SaveToClipboardFormat lo disegna in una bitmap e la trasparenza andrà persa.Come copiare un'immagine PNG negli Appunti utilizzando Delphi

Vorrei che l'immagine PNG venisse incollata in applicazioni come Photoshop e Word con trasparenza alfa.

Qualche idea su come farlo? Come stanno le altre applicazioni per copiare la trasparenza negli appunti?

+0

John, ha funzionato per voi, perché ho lo stesso problema riht ora, Usi TPNGObject? sto usando D7 byt penso che sia lo stesso concetto –

+0

Per quanto posso ricordare, non molte applicazioni gestiscono il formato PNG negli appunti, ma questo è un vecchio progetto e non riesco a ricordare i limiti esatti. – jonjbar

risposta

3

potrebbe essere che usano un formato di Appunti alternativa, vedi http://msdn.microsoft.com/en-us/library/ms649013(VS.85).aspx per un elenco dei formati di appunti disponibili. Oppure potrebbero registrare il proprio formato di Appunti come

RegisterClipboardFormat('PNG') 

e poi semplicemente scrivere i dati png negli Appunti. Se la stringa di formato degli appunti specificata è standard (ad esempio, altre applicazioni registrano lo stesso formato degli Appunti), sarà possibile incollarlo in altre applicazioni che supportano questo formato di Appunti.

Potrebbe essere necessario chiamare le funzioni di Windows direttamente come il wrapper di Delphi negli appunti non è molto buono.

5

Prima dovevo copiare un'immagine con informazioni sulla trasparenza negli Appunti in Photoshop e quindi esaminare ciò che è effettivamente negli Appunti. Quando lo sai, puoi probabilmente capire come scrivere da solo quei dati.

3

con Delphi XE, tutto quello che ho fatto è stato:

Clipboard.Assign(Image1.Picture.Graphic); 
+1

Per gli altri lettori, 'Clipboard' è definito nell'unità' ClipBrd'. – saastn

Problemi correlati