Come posso salvare un'immagine come file PNG o JPG con una data dimensione del file di output? (pref. in C #)

StackOverflow https://stackoverflow.com/questions/421056

  •  05-07-2019
  •  | 
  •  

Domanda

Vorrei salvare un'immagine esistente come PNG o JPG a una determinata dimensione del file, ad esempio 100 KB.

È stato utile?

Soluzione

PNG utilizza la compressione senza perdita, quindi non è possibile comprimerlo al di sotto di un certo livello.

In .NET puoi salvare un JPG con compressione e indovinare quanto sarà grande il file una volta completato.

http: // msdn.microsoft.com/en-us/library/system.drawing.image.save(VS.80).aspx - Vedi l'immagine "Salva immagine JPEG con valore di compressione" sezione.

Inoltre, puoi ridimensionare le dimensioni dell'immagine per ridurla.

Altri suggerimenti

Solo se si utilizza JPG 2000 è possibile impostare la dimensione del file su un valore specifico. Usando JPG, dovrai provare diversi valori di qualità e l'utilizzo di PNG ti darà una dimensione per una data immagine e un livello di compressione - puoi solo provare a ridimensionare l'immagine che ti darà una dimensione più piccola.

Potresti anche provare a ridimensionare l'immagine in modo che un'immagine non compressa abbia le dimensioni che desideri, ma quindi PNG e soprattutto JPG avranno spesso dimensioni di file molto inferiori.

Per PNG non esiste davvero un'impostazione di qualità, quindi non puoi davvero controllare la dimensione del file.

Jpg ha un'impostazione di qualità che determina la qualità di un'immagine. impostazioni di qualità inferiore producono file più piccoli. Tuttavia, normalmente non esiste alcuna opzione per "dare la qualità necessaria per un file di dimensioni x".

Puoi ottenere lo stesso risultato usando un approccio piuttosto inefficiente di conversione in jpg in memoria, vedendo quanto è grande l'output, regolando la qualità su o giù e ripetendo finché non ti avvicini abbastanza. Potrebbe sembrare terribile, ma se le tue immagini non sono troppo grandi potresti non accorgerti che il ritardo è breve mentre lo fai.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top