Newsgroup: it.comp.appl.access
Titolo: Qualità immagini jpeg nelle maschere

Ciao a tutti. Ho fatto in Access 2003 su Win XP un database per gestire
una serie di immagini che prima erano inserite in un foglio excel.
Le .jpg vengono visualizzate su una maschera dentro ad una serie di
controlli immagine, quelli standard di Access.
Le proprietà dei controlli sono
  Tipo immagine: Collegata
  Ridimensionamento: Zoom
  Allineamento: Centrato
Funziona tutto perfettamente, ma mentre in excel le immagini a video erano
perfette, in Access la qualità è scadente.
Pensando fosse dovuto alla conversione in bmp o al ridimensionamento ho
provato ad usare bmp e jpeg di dimensioni ridotte, ma la qualità resta
scarsa.
Ho anche dei report, sempre con controlli immagine. A video la qualità è
sempre bassa ma in stampa le immagini sono perfette.
Pensavo di provare con controlli immagine esterni.
Cosa mi consigliate per migliorare la qualità?
Ciao e buone feste a tutti!
-Marco-
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 -Marco-
Ciao Marco.
Non sò se può esserti utile, con Carlo abbiamo realizzato un OCX,
basato su PictureBox nel quale ho inserito l'utilizzo delle librerie
GDI e GDI+ per ottimizzare il caricamento dell'immagine in base alla
dimensione del controllo.
Dalle prove fatte da Carlo ha dato ottimi risultati soprattutto nei
Report dove si è evidenziato un problema nel caso di Loading di File
molto grossi...!
E' sviluppato in VB6, e funziona solo su sistema operativo WinXP(con
Win2K ci sono problemi con la GDI+).
Se ti serve lo puoi scaricare quì:
http://www.frantoiogestione.com/UsaImmaginiOCX.zip
se ci sono problemi fammi sapere...
@Alex

 
http://www.frantoiogestione.com/UsaImmaginiOCX.zip

Grazie, se riesco lo provo domani o domenica, altrimenti quando torno da
Tenerife (non ho il portatile per lavorare a bordo piscina, mannaggia!)
poi ti faccio sapere come va.
Ciao.
-Marco-
-- 


On 6 Apr, 09:46, 
marco.pizzamig...@gmail.com
 (Marco Pizzamiglio)
wrote:

Ecco che ci fai venire l'invidia.... Buone ferie a Tenerife....
Non sò dove sei alloggiato, io mi ero trovato bene, soprattutto con il
mangiare, la spiaggia NERISSIMA è molto particolare.
Ricordi di 8 anni orsono...
@Alex

 -Marco-
Ciao Marco
buone vacanze e Buona Pasqua
Daniele 

 Daniele
Ciao.
-- 
Sergio MAZZA 

 Ciao.
Per la foto vedrò di combinare.
Per l'ocx... chissà se ne trovo uno free che mi migliori anche la qualità
dei servizi in hotel!
A risentirci dopo le vacanze.


 Sergio MAZZA
Ciao Sergio
Buona Pasqua a te e famiglia
Daniele 

 dei servizi in hotel!
Ma sicuro che lo trovi!...ehm....non dimenticare, però, la carta di credito 
e
blocco assegni, sono le chiavi che aprono tutti gli "Ocx" :-)
Ciao Marco
Buon divertimento
Daniele


 > Ciao Marco.





Ho fatto una rapida prova con una sola immagine, la qualità è nettamente
migliore rispetto al controllo immagine nativo di access. 
I due problemi che riscontro sono:
1) l'immagine viene caricata a dimensione fissa, indipendente dalla
dimensione del controllo che la contiene, e non è centrata
2) anche variando nelle proprietà del controllo le impostazioni 'Stile
bordo' e 'Colore bordo' non si riesce a togliere l'effetto inciso
Potrebbe anche andarmi bene una dimensione fissa, dato che i controlli
sono tutti uguali tranne uno che mostra l'immagine in grande, ma non ho
trovato come impostarla.
Ho visto che la classe OpenPic non ha proprietà per settare le dimensioni,
la sub ApriImmagine non accetta altri parametri oltre al nome file e non è
esposto un metodo per fare il resizing manuale. Bisogna variare il
sorgente e ricompilare per cambiare le dimensioni dell'immagine?
Come velocità di caricamento non so com'è, dovrei fare delle prove con la
maschera originale che porta 30 immagini e comparare i risultati.
Ciao.
-Marco-
PS: a Tenerife si stava benone!



Bentornato, anche se non credo abbronzato!
Da qui puoi scaricare la nuova versione dell'ocx:
http://www.frantoiogestione.com/PictureImage.ocx
Inutile dirti che a programma chiuso Unregghi il precedente ocx, lo cancelli 
da system32 e vi incolli il nuovo, lo registri e dalla maschera o dal report 
di Access elimini il vecchio ocx e rimetti il nuovo che ha lo stesse nome 
(PictureImage.OpenPic).
Ho eliminato l'aspetto 3d e il bordo nero. A me fa il resizing dell'immagine 
nel senso che ridimensiona l'immagine alla grandezza del controllo che ho 
lasciato così come è.
Se sei interessato al progetto VB6 posso mandarti tutto.
Ciao, Carlo 

 ha scritto nel messaggio 
news:f02onr$pau$1...@news.newsland.it...
cut
Effettivamente la prima immagine risulta delle dimensioni del controllo. Non 
cosě le altre che non solo sono centrate ma prendono anche la dimensione del 
controllo stesso.
Vedo cosa si puň fare.
Ciao, Carlo 

 PS: a Tenerife si stava benone!
E ti credo....!
@Alex

 ha scritto nel messaggio 
news:f02onr$pau$1...@news.newsland.it...
Nella versione 1.0.6 l'attuale, ho corretto anche la centratura 
dell'immagine ed eliminato la distorsione dovuta al resizing al controllo.
Quello che ancora non riesco a fare è modificare la prima immagine: mi 
rimane della grandezza del controllo. Credo dipenda da Access.
Farò altre prove.
Il link per scaricare l'ocx è sempre lo stesso:
http://www.frantoiogestione.com/PictureImage.ocx
Ciao, Carlo 

 Ciao, Carlo
Purtroppo non si verifica in VB6....!
Hai provato a decommentare
    'pctLoad.Refresh
Purtroppo è veramente possibile sia un problema di Access, la gestione
degli eventi spesso da noia soprattutto quelli di Redraw... si
potrebbe inserire un Metodo nel Controllo per Forzare il Redraw... al
primo caricamento.
Non saprei come aiutarvi in modo più efficiente non vedo il
difetto...!
@Alex

 ha scritto nel messaggio 
news:1176831498.2...@b58g2000hsg.googlegroups.com...
cut
Purtroppo non si verifica in VB6....!
Hai provato a decommentare
    'pctLoad.Refresh
-------------------
Sě, č la prima cosa che ho fatto.
Ciao, Carlo

 Ciao, Carlo
Già immaginavo.
Hai provato anche a rieseguire la Sub UserControl_Paint(), quella
rigenera il Redraw
e rilegge il Size...!
@Alex

 ha scritto nel messaggio 
news:1176836222.1...@o5g2000hsb.googlegroups.com...


@Alex
OK. Non c'è stato bisogno.
Ora funziona bene: centra l'immagine e ne fa il ridimensionamento 
proporzionale.
Permane, in visualizzazione anteprima di report, una imprecisione del 
ridimensionamento della prima immagine e solo di questa, peraltro contenuta 
in un paio di millimetri per lato. Tale anomalia scompare nella stampa che, 
dalle mie prove, è perfetta.
Vediamo cosa ne dice Marco.
Per scaricare l'ocx (1.0.15)
il link è sempre lo stesso:
http://www.frantoiogestione.com/PictureImage.ocx
Ciao, Carlo 

 Ciao, Carlo
Ciao
@Alex

 Ciao, Carlo
Non riscontro il problema dell'errato ridimensionamento nella prima
immagine. Compaiono bordi bianchi solo quando l'aspect ratio della foto e
del controllo sono diversi, ma va benissimo così, del resto è inevitabile
se si vogliono mantenere le proporzioni originali.
Oltre all'evidentissimo miglioramento della qualità dell'immagine confermo
anche un notevole aumento di velocità nel caricamento delle jpg, anche se
le dimensioni dei files che sto usando vanno solo da 100 a 600 Kb.
In una maschera ho messo 6 ocx e due controlli immagine nativi access per
confronto, le prime 6 img le carica in un attimo ma per le ultime due si
nota un rallentamento visibile ad occhio, che non mi sono nemmeno preso la
briga di misurare.
Il problema che si pone ora è che alla prima apertura della maschera
caricando le immagini su Form_Open non viene fatto il resize, viene
mostrata solo la parte in alto a sinistra dell'immagine e il resto è
troncato. Workaround: caricare le jpg su Form_Timer 50ms dopo
l&#8217;apertura.
Il problema rimane nei report. Anche spostando le istruzioni per il
caricamento delle immagini dall'evento Report_Open a Report_Activate o a
Corpo_Format non cambia quasi niente, non fa il resize in apertura ma solo
al secondo Format, per esempio aprendo e chiudendo la finestra Imposta
pagina.
Per me è già buono poter risolvere il problema sulla maschera, nei report
potrei anche usare i controlli nativi di access. Anche se l'anteprima a
video non ha una gran qualità la stampa è perfetta, però sarebbe
interessante capire il perchè di questo bug.
Se si riesce a risolvere metto gli ocx anche nei report per sfruttare
anche lì la maggiore velocità e la migliore qualità a video.
Vi mando in mail il db e le jpg che ho usato per le prove, se vi interessa
dare un'occhiata.
Ambiente di test: Windows XP SP2 - Access 2003 SP2 - OCX (vers 1.0.15?)
scaricato 18.04.2007 ore 11:46
Ciao grazie.


 pagina.
Proprio quello di cui ti parlavo.
Vedro di lavorarci ancora un po'...
Ciao, Carlo 

 ha scritto nel messaggio 
news:1176886821.9...@o5g2000hsb.googlegroups.com...
[CUT]
Puoi scaricare l'intero progetto e un mdb di esempio da qui:
http://www.frantoiogestione.com/Source.zip
Ciao, Carlo 

 ha scritto nel messaggionews:f04v3b$hv5$1...@news.newsland.it...

Domanda:
Public Property Set Pic(ByVal vNewValue As Variant)
Questo mi lascia perplesso... non passi per GDI e rendi vano il
Loading della libreria o sbaglio...?
In Access il controllo potrebbe essere reso Bound....!
Definendo una proprietà ControlSource, dovrebbe essere possibile
leggere il Parent del ControlloOCX, e ovviamente se il Field è
presente nel RecordSource di Form diventa semplice rilevarlo...!
Vabbè quando avrò WinXP farò le mie prove ora è inutile che vi dica
quello che si potrebbe fare secondo me che non posso farlo...!
Grazie Carlo.
@Alex

 ha scritto nel messaggio 
news:1176913628.8...@q75g2000hsh.googlegroups.com...
cut
Domanda:
Public Property Set Pic(ByVal vNewValue As Variant)
Questo mi lascia perplesso... non passi per GDI e rendi vano il
Loading della libreria o sbaglio...?
..........................
E' nel codice per un uso futuro...al momento non č utilizzato.
Ci stavo lavorando .... per rendere "trasparente" un controllo Picture che 
normalmente non č possibile rendere trasparente.
Questo per cercare di risolvere il problema di Marco delle porzioni del 
controllo non riempite dall'immagine e che risultano bianche.
In alternativa alla trasparenza, credo si possa risolvere ridimensionando 
opportunamente il controllo all'immagine contenuta e dopo il resizing 
dell'immagine stessa al controllo...
cut
Vabbč quando avrň WinXP farň le mie prove ora č inutile che vi dica
quello che si potrebbe fare secondo me che non posso farlo...!
.....................
Hai pensato di usare Virtual PC su W2000, magari su di un disco esterno? E 
lě installare XP?
Ciao, Carlo

 Ciao, Carlo
Ciao
@Alex

 lì installare XP?
Magari..., se avessi un PC degno di questo nome... purtroppo viaggio
ancora(a casa) con un vecchio PIII e se installo SW di quel tipo fà le
capriole all'indietro...!
A breve(forse..dopo l'estate) cambierò macchina, il fatto è che a casa
lo uso solo per giocare con Access, quindi non ho molte esigenze...
-------------------
Credo ce la possa fare benissimo, almeno con un disco esterno e se hai 512 
Mega di RAM di cui 256 da dedicare a XP.
Ciao
@Alex
Ciao, Carlo

 Seh...magari fosse così semplice!
Scusa ho letto male infatti, ho visto solo ora che parlavi di
controllo Picture(penso intendi immagine) e non PictureBox..., perchè
se intendevi PictureBox se vedi la funzione LoadPictureGDIPlus
supporta il BackColor come Parameter... nel caso vengano caricate
Immagini Trasparenti..., come puoi vederenel codice il BackColor viene
assegnato all'inizializzazione dell'area hDC, pertanto se gli assegni
il colore di sfondo dell'Oggetto nel quale piazzi il Controllo ottieni
l'effetto Trasparente.
Non sò se ho capito male o meno...
@Alex

 ha scritto nel messaggio 
news:1176927394....@e65g2000hsc.googlegroups.com...



@Alex
----------------------------
Infatti non parlavo di immagini tipo gif trasparenti o col canale di 
trasparenza...parlo proprio della picturebox nell'usercontrol con che non 
può essere trasparente perchè non espone la proprietà BackStyle.
Ciao, Carlo 

 ha scritto nel messaggio 
news:1176927394....@e65g2000hsc.googlegroups.com...
cut
Se guardi nel codice avevo gią passato il backcolor alla gdi (il bianco).
Ciao, Carlo 

 Ciao, Carlo
Dai un'occhiata a questo 3D non completamente attinente ma ti mostra
come usare l'API BitBlt per rielaborare la trasparenza... e visto che
il contenuto è già caricato ...
http://tinyurl.com/2fw4cb
@Alex