Come decodificare un'immagine (HTML)
[ Questo articolo è rivolto agli sviluppatori per Windows 8.x e Windows Phone 8.x che realizzano app di Windows Runtime. Gli sviluppatori che usano Windows 10 possono vedere Documentazione aggiornata ]
Illustriamo come caricare un'immagine da un file, come visualizzarla usando il tag <img>
e come creare un oggetto BitmapDecoder da essa. BitmapDecoder consente di accedere ai metadati e recuperare dati pixel dalle immagini.
Cosa sapere
Tecnologie
- Creazione della prima app di Windows Runtime scritta in JavaScript
- Windows.Storage.Pickers
- Windows.Graphics.Imaging
Prerequisiti
- Partiamo dal presupposto che tu sappia come creare una semplice app di Windows Runtime in JavaScript. Per altre informazioni, vedi Creazione della prima app di Windows Runtime scritta JavaScript.
Istruzioni
Passaggio 1: Aggiungi un'immagine segnaposto
Aggiungi un tag <img>
al file HTML.
<img id="myImage" src="" />
In seguito caricherai il file di immagine nell'oggetto myImage.
Passaggio 2: Usa l'utilità di selezione file per selezionare un file di immagine.
Crea un nuovo oggetto FileOpenPicker per consentire all'utente di selezionare un file da aprire. Imposta l'estensione del file in modo da filtrare le immagini JPEG. Visualizza il selettore file.
function DecodeImage() {
var picker = new Windows.Storage.Pickers.FileOpenPicker();
picker.fileTypeFilter.append(".jpg");
picker.pickSingleFileAsync().then(function (file) {
if (!file) {
Nota Per ottenere un elenco di tutte le estensioni file supportate dai codec installati nel sistema, puoi usare Windows.Graphics.Imaging.BitmapDecoder.getDecoderInformationEnumerator.
Nota Se l'utente annulla l'operazione, il metodo pickSingleFileAsync restituisce un oggetto null.
Passaggio 3: Visualizza l'immagine nell'elemento Image
Crea un URL oggetto per il file e impostalo come origine dell'elemento Image.
Il metodo createObjectURL crea un URL supportato dai dati di un oggetto quale StorageFile.
var objectURL = window.URL.createObjectURL(file, { oneTimeOnly: true });
document.getElementById("myImage").src = objectURL;
Passaggio 4: Crea l'oggetto decodificatore
Apri il file usando la modalità di accesso in lettura per ottenere un oggetto IRandomAccessStream. A questo punto, crea un oggetto BitmapDecoder nel flusso.
}).then(function (stream) {
return Windows.Graphics.Imaging.BitmapDecoder.createAsync(stream);
}).done(function (decoder) {
// BitmapDecoder is ready for use.
});
}
Osservazioni
Ora che disponi di un oggetto decodificatore puoi usarlo per:
- Leggere i metadati nell'immagine. Per altre info, vedi Come leggere i metadati delle immagini.
- Recupera i dati pixel dall'immagine. Per altre info, vedi Come recuperare i dati pixel.
- Crea un codificatore mediante transcodifica. Per altre informazioni, vedi Come codificare un'immagine.