Converti png in dll

Converti PNG in DLL

Pacchettizza un PNG come Windows resource DLL oppure sostituisci una risorsa icon e bitmap compatibile.

Converti i file PNG online

Non abbiamo ancora un convertitore online dedicato per PNG in DLL, ma puoi convertire i file PNG online in questi e altri formati:

Come convertire png in dll file

  • Grafica

Un programma Windows può richiedere un'immagine inclusa in una DLL come risorsa, oppure potrebbe essere necessario sostituire l'icona o la bitmap di una DLL esistente. Non si tratta di una normale conversione del formato immagine: il PNG deve essere incorporato in una DLL delle risorse compilata ex novo oppure convertito nel tipo di risorsa previsto dall'applicazione host.

Che cos'è il formato PNG

PNG (Portable Network Graphics) è un formato raster utilizzato dai browser web, dagli strumenti per screenshot, dalle applicazioni di progettazione come Adobe Photoshop e GIMP e dai software che memorizzano elementi grafici dell'interfaccia. Utilizza la compressione senza perdita e supporta la trasparenza tramite un canale alfa, risultando adatto per screenshot, loghi, icone e immagini dell'interfaccia utente.

Che cos'è il formato DLL

DLL significa Dynamic-Link Library. Una DLL è un file Windows Portable Executable che può contenere codice eseguibile, funzioni esportate e risorse come icone, finestre di dialogo, stringhe, manifest o dati raw. I programmi caricano le DLL in fase di esecuzione per condividere funzionalità o recuperare risorse incorporate.

Una DLL non è un formato immagine. Un PNG incorporato in una DLL rimane costituito da dati PNG; non diventa codice eseguibile. Il programma ricevente deve conoscere il tipo e l'identificatore della risorsa, oppure la DLL deve implementare le funzioni esportate e la calling convention previste dal programma.

Come incorporare un PNG in una nuova DLL

Creare una DLL contenente solo risorse

Installare Microsoft Visual Studio Build Tools o Windows SDK, quindi aprire un Developer Command Prompt for Visual Studio. Inserire il PNG e uno script di risorse denominato resources.rc nella stessa directory:

101 RCDATA "image.png"

RCDATA memorizza i byte originali del PNG senza decodificarli o ricomprimerli. Compilare e collegare la risorsa:

rc /fo resources.res resources.rc
link /dll /noentry /out:images.dll resources.res

Il file images.dll risultante è una DLL contenente solo risorse e priva di funzioni esportate. Un'applicazione compatibile deve recuperare l'ID risorsa 101 con funzioni Win32 come FindResource, LoadResource, LockResource e SizeofResource, quindi decodificare i byte con una libreria compatibile con PNG come Windows Imaging Component (WIC).

Creare risorse standard per icone o bitmap

Utilizzare questo metodo solo quando l'applicazione di destinazione prevede una risorsa Windows standard anziché dati PNG arbitrari. Convertire l'immagine con ImageMagick:

magick image.png image.ico
magick image.png image.bmp

Un file ICO può contenere diverse dimensioni di icone e profondità di colore. Una risorsa BMP generalmente non conserva la trasparenza PNG in modo altrettanto affidabile e la conversione può aumentare le dimensioni del file. Dichiarare i tipi di risorsa richiesti in resources.rc:

101 ICON "image.ico"
102 BITMAP "image.bmp"

Compilare la DLL delle risorse con:

rc /fo resources.res resources.rc
link /dll /noentry /out:images.dll resources.res

Un'applicazione che cerca una risorsa ICON non utilizzerà automaticamente una risorsa RCDATA contenente un PNG. Gli identificatori delle risorse, i tipi di risorsa e qualsiasi convenzione di denominazione prevista devono corrispondere al programma host.

Sostituire un'immagine in una DLL esistente

Se la DLL contiene già il codice del programma e la struttura delle risorse richiesti, utilizzare Resource Hacker per sostituire un'icona, una bitmap o una risorsa di dati raw compatibile esistente. Aprire una copia della DLL, selezionare la risorsa pertinente, scegliere Action → Replace Icon o Action → Replace Bitmap, fornire un file .ico o .bmp compatibile e salvare con un nuovo nome file. La sostituzione di dati PNG arbitrari richiede l'individuazione della risorsa RCDATA corretta e la conservazione dell'identificatore e del formato previsto; un comando di sostituzione delle icone non può convertire automaticamente ogni risorsa PNG.

Strumenti online e desktop

I servizi online come CloudConvert o Convertio possono convertire PNG in ICO quando il requisito effettivo è un file icona, ma non possono determinare gli identificatori delle risorse, l'interfaccia esportata, l'architettura o l'ABI di una DLL. Utilizzare Visual Studio Build Tools o Windows SDK per creare la DLL, ImageMagick per preparare i file ICO o BMP e Resource Hacker per modificare risorse esistenti compatibili. Evitare di caricare immagini o DLL proprietarie su servizi online.

Limiti di compatibilità e qualità

  • Non esiste una conversione universale da PNG a DLL. La destinazione potrebbe richiedere un particolare tipo di risorsa, un identificatore, un nome esportato, una calling convention, un'architettura Windows o una versione specifica della DLL.
  • Una DLL a 32 bit deve essere caricata in un processo a 32 bit e una DLL a 64 bit deve essere caricata in un processo a 64 bit. Windows non può caricare in un processo esistente una DLL con un'architettura errata.
  • La memorizzazione del PNG come RCDATA conserva la compressione senza perdita e il canale alfa originali, ma l'applicazione deve decodificarlo. La conversione in BMP può rimuovere o modificare la trasparenza e può produrre un file di dimensioni maggiori.
  • La modifica di una DLL firmata o protetta invalida la firma digitale e può compromettere checksum, controlli della versione, programmi di installazione, aggiornamenti o caricamento dell'applicazione. Conservare un backup originale e modificare software di terze parti solo quando la relativa licenza lo consente.

Confronto formato: PNG vs DLL

Come i formati PNG e DLL si confrontano sulle proprietà più importanti per questa conversione.

Confronto dei formati PNG e DLL
Proprietà .PNG Portable Network Graphics .DLL Dynamic-Link Library
Compressione Lossless Non compresso
Trasparenza
Animazione No No
Livelli No No
Profondità di colore Colore reale con alpha (32 bit)
Supporto metadata Estesa Base
Si apre in un browser web Sì, nativamente No
Dimensione tipica del file Piccolo Medio
Standard aperto No
Ideale per Pubblicazione web Incorporamento nelle applicazioni
Introdotto 1996 1993
Sviluppatore PNG Development Group Microsoft
Tipo MIME image/png