Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Qualcuno mi può confermare se caricando una immagine ( a 300 dpi) in una picturebox in vb6 quando si effettua il salvataggio dell'immagine sia in jpg o bmp i dpi scendono a 96 ?
Non c'è verso di salvare l'immagine caricata a 300 dpi ?
Cia Gibra e grazie per la risposta. Il mio problema non era salvare una immagine in jpg. So benissimo che non basta cambiare l'estensione di un file per cambiarne il tipo :-)
L'immagine riuscivo a salvarla convertendola in jpg tranquillamente ma non capivo perchè controllando i dettagli del file i DPI erano per tutte le immagini 96 dpi.
Ho risolto usando una classe della gdiplus. Quindi salvo l'immagine in formato jpg impostando nel comando anche i DPI che nel mio caso sono 300 e 300. Grazie, in ogni caso.
Il tuo progetto me lo spulcio comunque :-)
Postato originariamente da untipo: Cia Gibra e grazie per la risposta. Il mio problema non era salvare una immagine in jpg. So benissimo che non basta cambiare l'estensione di un file per cambiarne il tipo :-) L'immagine riuscivo a salvarla convertendola in jpg tranquillamente ma non capivo perchè controllando i dettagli del file i DPI erano per tutte le immagini 96 dpi. Ho risolto usando una classe della gdiplus. Quindi salvo l'immagine in formato jpg impostando nel comando anche i DPI che nel mio caso sono 300 e 300. Grazie, in ogni caso. Il tuo progetto me lo spulcio comunque :-)
Ciao,
spero solo che il tema sia ancora attuale: avrei lo stesso problema.
Potrei avere un esempio (VB6) di salvataggio con 300 dpi ?
Voglio solo puntualizzare che i DPI non cambiano la qualità dell'immagine. I DPI hanno un senso solo quando l'immagine viene stampata e determinano la densità di stampa.
Se ho un'immagine da 800x600 pixel da 72DPI e un'immagine da 800x600 pixel da 300DPI, le immagini a livello di file sono identiche, la differenza però c'è quando l'immagine viene stampata, DPI significa Dots Per Inch (punti per pollice), con un rapido calcolo l'immagine da 72DPI verrà stampata di dimensioni 800/72 = 11 pollici = 28 cm, 600/72 = 8 pollici = 20 cm (stampa qualità media), la stessa immagine stampata a 300DPI risulterà 800/300 = 2,6 pollici = 6,6 cm, 600/300 = 2 pollici = 5 cm (stampa qualità alta).
Questo per dire che cambiando i DPI non si cambia la qualità dell'immagine ma la qualità di stampa, se nel tuo programma VB6 la risoluzione in pixel è rimasta la stessa, significa che l'immagine è rimasta la stessa, l'utente al momento della stampa sceglierà la dimensione di stampa variando i DPI al volo e la qualità di stampa.
I DPI sono di fondamentale importanza quando la dimensione di stampa è un fattore vincolante, per esempio devo stampare un'immagine in scala, per essere certi di stampare un'immagine della dimensione prefissata, il modo più semplice è comporre un file PDF.
Ultima modifica effettuata da Carlo il 10/06/2021 alle 10:36
Ho cercato di iscrivermi al sito ma ... vogliono sapere "vita, morte e miracoli" e, a questa età ... !
Sono già iscritto a "1000" siti e, al momento, siamo letteralmente bombardati da pubblicità, virus, trojan, etc., etc. e, con questo, non voglio dire che il sito non sia serio, per carità !
Però, preciso che sono un "vecchio" programmatore alla vecchia maniera (Cobol, ASM, Clipper, etc. (in Germania) e un po' di VB6 per hobby, per voglia di apprendere) e sono principalmente contrario alle moderne App, invasive e pericolose (WhatsApp, TicToc, etc., etc.).
Tanto premesso, solo per farti capire la mia indole tranquilla e pacifica.
Se, almeno come "collega" (scusa se oso), mi potresti dare solo la/le API precisa/e del caso e "la riga" colla quale posso (speriamo) salvare a 300x300 dpi (o, anche meno), sarei ultrafelice !
A me, serve per il solo testo per motivi di OCR: pare che le immagini di testo a 300x300 dpi,vengano meglio analizzate dai software del caso.
E, a questo punto, ti ringrazio comunque (che mi invii o meno le poche righe che mi occorrono).
allora, non ho molto perchè, come dicevo, mi sono appena interessato a GdiPlus e ho scaricato (e buttato) diverso materiale perchè non ci ho capito un'acca (... colpa mia, è chiaro !).
Quello che al momento ho:
1 - stretch (e simili) ... che ho capito come funziona, ma il risultato non è soddisfacente (al riguardo dell'OCR),
Private Type GUID Data1 As Long Data2 As Integer Data3 As Integer Data4(0 To 7) As Byte End Type Private Type GdiplusStartupInput GdiplusVersion As Long DebugEventCallback As Long SuppressBackgroundThread As Long SuppressExternalCodecs As Long End Type Private Type EncoderParameter GUID As GUID NumberOfValues As Long type As Long Value As Long End Type Private Type EncoderParameters Count As Long Parameter As EncoderParameter End Type
Private Declare Function GdiplusStartup Lib "GDIPlus" (token As Long, inputbuf As GdiplusStartupInput, Optional ByVal outputbuf As Long = 0) As Long Private Declare Function GdiplusShutdown Lib "GDIPlus" (ByVal token As Long) As Long Private Declare Function GdipCreateBitmapFromHBITMAP Lib "GDIPlus" (ByVal hbm As Long, ByVal hpal As Long, Bitmap As Long) As Long Private Declare Function GdipDisposeImage Lib "GDIPlus" (ByVal Image As Long) As Long Private Declare Function GdipSaveImageToFile Lib "GDIPlus" (ByVal Image As Long, ByVal filename As Long, clsidEncoder As GUID, encoderParams As Any) As Long Private Declare Function CLSIDFromString Lib "ole32" (ByVal str As Long, id As GUID) As Long
Public Sub SaveJPG(ByVal pict As StdPicture, ByVal filename As String, Optional ByVal Quality As Byte = 100) ' ----==== SaveJPG ====---- Dim tSI As GdiplusStartupInput Dim lRes As Long Dim lGDIP As Long Dim lBitmap As Long
GdipDisposeImage lBitmap ' Destroy the bitmap End If
GdiplusShutdown lGDIP ' Shutdown GDI+ End If
If lRes Then Err.Raise 5, , "Cannot save the image. GDI+ Error:" & lRes End If
End Sub
Private Sub Form_Load() Call SaveJPG(StdPicture, "c:\Prova.bmp", 100) End Sub _____________________________________________________
Premetto che, quello che mi ha colpito, è la frase "Ho risolto usando una classe della gdiplus. Quindi salvo l'immagine in formato jpg impostando nel comando anche i DPI che nel mio caso sono 300 e 300", postato da "untipo".