Windows bitmap: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Corretto il collegamento Raster con Grafica raster (DisamAssist)
 
(30 versioni intermedie di 20 utenti non mostrate)
Riga 1:
{{PortaleNN|informatica|aprile 2023}}
{{Formato file
| nome = Windows bitmap (BMP) / Device-independent bitmap (DIB)
| logo =
| icona =
| immagine =
| didascalia =
| estensione = .bmp, .dib
| mimemagic_number =
|mime = image/bmp
| typecode =
|uniform_type_identifier = com.microsoft.bmp
| sviluppatore = [[Microsoft]]
| proprietariotypecode =
| sviluppatore = [[Microsoft]]
| licenza = Libero da brevetti
| data_rilascioproprietario =
|licenza = Microsoft Open Specification Promise
| ultima_versione =
|data_rilascio =
| data_ultima_versione =
| ultima_versione =
| genere = [[immagine raster|immagini raster]] senza compressione / [[Run-length encoding|RLE]]
| data_ultima_versione =
| compressione = [[Compressione dati senza perdita|Non compresso]]
|genere = [[Grafica raster]]
| estensione_di =
|compressione = lossless
| esteso_a =
| standardestensione_di =
| apertoesteso_a =
|standard =
| sito = www.microsoft.com
|aperto = sì
| sito = www.microsoft.com
}}
'''Windows bitmap''' è un formato dati utilizzato per la rappresentazione di [[immagine raster|immagini raster]] sui [[Sistema operativo|sistemi operativi]] [[Microsoft Windows]] e [[OS/2]]. Noto soprattutto come [[formato di file]], fu introdotto con [[Windows 3.x#Windows 3.0|Windows 3.0]] nel [[1990]].
 
Le '''bitmap''', come sono comunemente chiamati i [[file]] d'immagine di questo tipo, hanno generalmente l'[[Estensione (file)|estensione]] '''.bmp''', o meno frequentemente '''.dib''' ('''device-independent bitmap''').
Line 38 ⟶ 41:
 
=== Versioni 4 e 5 ===
Con [[Windows 95]] e [[Windows 98]] Microsoft ha introdotto le nuove versioni 4 e 5 del formato bitmap, che supportano il [[canale alfa (informatica)|canale alfa]] e la definizione di [[Spazio dei colori|spazi di colori]] personalizzati. La versione 5 prevede inoltre la possibilità di utilizzare un profilo di colore in un [[file]] esterno e d'incorporare immagini [[Joint Photographic Experts Group|JPEG]] e [[Portable Network Graphics|PNG]]. Questi nuovi formati si trovano tuttavia assai raramente come file indipendenti e molte [[applicazione (informatica)|applicazioni]] non sono in grado di riconoscerli; il loro uso principale è quello di formato interno per i [[Programma (informatica)|programmi]] di [[Microsoft Windows|Windows]] o di videogiochi<ref>[{{cita web|lingua=en|url=http://www.echos.ch/eod/help/texturen.htm |titolo=Creating Textures]|sito=Easy Object Designer}}</ref>.
 
== Struttura ==
<div class="thumb tright">
<div class="thumbcaption">
<div align="center">
{| border="2" bgcolor="F8F8F8" cellpadding="4" cellspacing="0" style="margin: 1em; border: 1px #aaa solid; border-collapse: collapse;"
| align="left" | '''Header del file'''<br />(<span style="font-family:monospace">BITMAPFILEHEADER</span>)
Line 61 ⟶ 63:
| align="left" | eventualmente: spazio inutilizzato
|}
</div>
Struttura di una bitmap
</div>
Line 100 ⟶ 101:
| style="font-family:monospace" | [[Word]]
| bfType
| la [[Stringa (informatica)|stringa]] [[ASCII]] <span style="font-family:monospace">"BM"</span> (valore decimale 16973, esadecimale 4D42 in little endian424D)
|-
| 2
| style="font-family:monospace" | [[Dword]]
| bfSize
| dimensione del file (''non affidabile!'')
|-
| 6
Line 317 ⟶ 318:
 
== Vantaggi e svantaggi ==
Una delle caratteristiche essenziali del formato bitmap che ne hanno fatto per molto tempo la fortuna è la velocità con cui le immagini vengono lette o scritte su disco, molto maggiore se paragonata a quella di altri tipi di [[file]], soprattutto sulle macchine più lente. Nelle bitmap non compresse la rappresentazione dei dati nella memoria [[RAM]] è in gran parte simile, spesso identica, a quella dei dati su disco: il [[Microprocessore|processore]] non è costretto ad effettuare calcoli laboriosi durante le operazioni di codifica e di decodifica e il tempo di accesso ai dati è spesso limitato solo dall'[[hardware]] del drive.
 
{| border="1" cellpadding="3" cellspacing="0" style="float: left; margin: 0 1em 0 0"
Line 358 ⟶ 359:
|}
|}
Esiste anche, ma non è molto usata, la possibilità di comprimere le bitmap da 16 e 256 colori con l'[[algoritmo]] [[Run-length encoding|RLE]]. La [[Compressione dei dati|compressione]] RLE non è tuttavia efficiente come altri metodi di [[Compressione dati lossless|compressione lossless]]. Le bitmap, anche quelle compresse, occupano di regola più spazio su disco rispetto ad altri formati [[Grafica raster|raster]] come [[Graphics Interchange Format|GIF]] o [[Portable Network Graphics|PNG]], e sono perciò meno adatte di questi alla trasmissione di immagini via [[Internet]] o alla memorizzazione permanente su [[Compact disc|CD]], [[DVD]] o altri supporti di dati.
 
Una limitazione grave del formato bitmap, almeno nella comune versione 3, è quella di non supportare alcun tipo di trasparenza. Per ovviare a questo problema sono stati messi a punto diversi stratagemmi, come utilizzare un colore speciale per i pixel trasparenti, oppure servirsi di altre bitmap per mascherare le parti invisibili di un'immagine (alcune di queste tecniche sono rintracciabili nella stessa [[Windows API|API di Windows]]), ma nessuno offre la stessa versatilità del [[canale alfa (informatica)|canale alfa]], la cui diffusione è legata soprattutto all'avvento del formato PNG.
 
AncheNonostante con l'inconveniente dellele maggiori dimensioni dei file ede ancheil senza ilmancato supporto per la trasparenza, ci sono altridiversi fattori che hanno contribuito in modo significativo alla popolarità delle bitmap: il formato è semplice, ben documentato e non è tutelato da [[Brevetto|brevetti]] che ne restringano il libero uso. Soprattutto quest'ultimo punto ha fatto sì che il formato bitmap sia oggi supportato da quasi tutte le [[applicazione (informatica)|applicazioni]] grafiche, inclusi molti programmi [[open source]] anche oltre i confini del mondo [[Microsoft]].
 
== Usi pratici ==
Line 391 ⟶ 392:
 
=== C / C++ ===
Tra le librerie [[C (linguaggio)|C]] [[C++]] degne di nota per la manipolazione di immagini, possiamo trovare [http://freeimage.sf.net FreeImage], libreria [[Open source]] multipiattaforma, che supporta un grosso numero di formati e funzioni.<ref>{{cita web|lingua=en|url=https://freeimage.sourceforge.io|titolo=The FreeImage Project}}</ref>
 
=== Delphi ===
Sin dalla prima edizione di [[Delphi]], è presente nella VCL (Visual Component Library) l'oggetto TBitmap, che permette di manipolare files bitmap. Esistono poi progetti esterni a Delphi, che ampliano le potenzialità e le funzionalità dell'oggetto TBitmap, tra questi ricordiamo [Graphics32<ref>{{cita web|lingua=en|url=http://graphics32.org/documentation/Docs/Units/GR32_Image/Classes/TImage32/_Body.htm|titolo=TImage32|sito=Graphics32|urlarchivio=https://web.archive.org/web/20110726130649/http://graphics32.org/documentation/Docs/Units/GR32_Image/Classes/TImage32/_Body.htm Graphics32]}}</ref>, [httpProject JEDI<ref>{{cita web|lingua=en|url=https://www.delphi-jedi.org/ |titolo=Project JEDI]}}</ref> e [GLScene<ref>{{cita web|lingua=en|url=http://glscene.sourceforge.net/wikka/HomePage|titolo=GLScene|urlarchivio=https://web.archive.org/web/20101110002948/http://glscene.sourceforge.net/wikka/HomePage GLScene]}}</ref>.
 
=== Python ===
Anche tramite il linguaggio [[Python]] è possibile manipolare immagini: tra le librerie disponibili, troviamo [PIL<ref>{{cita web|lingua=en|url=http://www.pythonware.com/products/pil/ |titolo=PIL]|urlarchivio=https://web.archive.org/web/20120415045020/http://www.pythonware.com/products/pil/|urlmorto=sì}}</ref> e [httpFreeImagePy<ref>{{cita web|lingua=en|url=https://freeimagepy.sfsourceforge.net |titolo=FreeImagePy]}}</ref>, basata su [http://freeimageFreeImage.sf.net FreeImage]
 
<sourcesyntaxhighlight lang="python">
from CoreGraphics import *
import math
Line 436 ⟶ 437:
c.writeToFile ("out.png", kCGImageFormatPNG)
 
</syntaxhighlight>
</source>
 
==Note==
Line 442 ⟶ 443:
 
== Bibliografia ==
* {{cita libro|autore=James D. Murray|autore2=William vanRyper|titolo=Encyclopedia of Graphics File Formats|edizione=2|capitolo=Microsoft Windows Bitmap|pagine=572-591|editore=O'Reilly|anno=1996|lingua=en|ISBN=1-56592-161-5|url=https://www.fileformat.info/format/bmp/egff.htm|accesso=24 aprile 2023}}
*''Compressed Image File Formats'' - John Miano, Addison-Wesley Professional, 1999 - ISBN 0-201-60443-4
* {{cita libro|cognome=Miano|nome=John|titolo=Compressed image file formats: JPEG, PNG, GIF, XBM, BMP|url=https://archive.org/details/compressedimagef0000mian|città=Reading|editore=Addison Wesley|anno=1999|lingua=en|ISBN=0-201-60443-4}}
 
== Voci correlate ==
*[[ElencoLista di tipiformati di file]]
*[[STDU Viewer]]
 
== Altri progetti ==
Line 452 ⟶ 453:
 
== Collegamenti esterni ==
* {{FOLDOC|bmp}}
* {{cita web|url=http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_99ir.asp|titolo=Pagina della MSDN Library sulle bitmap|lingua=en}}
* {{cita web|url=httphttps://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_4v1hbitmaps_99ir.asp|titolo=StrutturaPagina delledella MSDN Library sulle bitmap|lingua=en|urlmorto=sì}}
* {{cita web|url=httphttps://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_99irbitmaps_4v1h.asp|titolo=PaginaStruttura della MSDN Library sulledelle bitmap|lingua=en|urlmorto=sì}}
* {{cita web|url=http://www.softzone.it/tutorials/showquestion.php?faq=1&fldAuto=24|titolo=VisualizzareBitmaps, leDevice bitmapContexts cone l'API di WindowsBitBlt|sito=Softzone|urlmorto=sì|urlarchivio=https://web.archive.org/web/20060506052951/http://www.softzone.it/tutorials/showquestion.php?faq=1&fldAuto=24|dataarchivio=6 maggio 2006}}
* {{cita web|http://wvnvaxa.wvnet.edu/vmswww/bmp.html|Esempi d'immagini BMP in vari formati|lingua=en}}
* {{cita web|url=http://wvnvaxa.wvnet.edu/vmswww/bmp.html|titolo=Example BMP images|lingua=en|accesso=15 gennaio 2006|urlarchivio=https://web.archive.org/web/20060625100540/http://wvnvaxa.wvnet.edu/vmswww/bmp.html|dataarchivio=25 giugno 2006|urlmorto=sì}}
 
{{Portale|informatica}}
 
{{Formati di compressione}}
 
{{Estensioni}}
{{Portale|informatica}}
 
[[Categoria:Formati di file grafici]]