Modifica delle dimensioni di un'immagine<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ho decine di immagini che voglio che i miei utenti possano ridimensionare facilmente.Ho creato una piccola funzione che fa il trucco, ma sento che ci deve essere un modo migliore.Di seguito è riportato un esempio di ciò che sto facendo.Poiché le immagini cambiano sempre, conosco solo il riferimento alla scatola delle immagini.Uno dei problemi con questa strategia è che ridimensionando l'immagine più volte si degrada la qualità.
Mi chiedevo se qualcuno ha usato << Inval, o << Inval Size; Sento che uno di questi due metodi sarebbe più intelligente.
Inoltre, qualcuno conosce la differenza tra << Ottieni immagine; e << Ottieni un'immagine?I risultati di Ottieni immagine sono leggermente più piccoli e i BLOB sono completamente diversi: ottieni Immagine più grande.
I nomi predefiniti sono qui ( 1 ) ;
imm = nuova immagine ( "$SAMPLE_IMAGES/riquadro.jpg" ) ;
imgSize = 300 ;
imm << Imposta dimensione ({ imgSize , imgSize }) ;
Nuova finestra ( "Test" , vlistbox ( Casella di scorrimento ( 100 , 1000 , imgSize ) ,
Scatola dei bottoni ( "Imposta dimensione" ,
tempImage = pb << Ottieni immagine ;
tempImage << Imposta dimensione ({ imgSize , imgSize }) ;
pb << Imposta immagine ( tempImage ) ;
) ,
pb = picturebox ( imm ))) ;
Ri: Modificare la dimensione dell'immagine(Disattiva la casella di controllo Traduci nella parte superiore della pagina se questo testo sembra incasinato)
< Qualunque casella di visualizzazione; fa sì che la scatola ei suoi figli vengano disegnati in una bitmap.
< un PictBox o un GraphBox.Per GraphBox, fa più o meno la stessa cosa di <
Probabilmente vorrai usare <<
L'uso di getPicture con un PictBox ricodificherà i pixel se lo salvi; potresti evitare la ricodifica con getImage e il salvataggio nello stesso formato.La ricodifica può degradare la qualità dell'immagine, specialmente con JPG.
aggiornamento: mi piace anche il frame box (Graph Box) <
g[framebox(1)]<
Ri: Modificare la dimensione dell'immagineMS Questa è una soluzione interessante per mantenere chiara la risoluzione dell'immagine.
Justin, come notato sopra, le immagini nella finestra dell'immagine stanno cambiando.Tenere traccia delle immagini invece delle finestre di immagini sarebbe più lavoro di quello che voglio mettere in questo.
Ri: Modificare la dimensione dell'immagineAllo stesso modo, potresti semplicemente mantenere un riferimento all'immagine originale per evitare la finestra dell'immagine collassata.
I nomi predefiniti sono qui ( 1 ) ;
originaleImg = Nuova immagine ( "$SAMPLE_IMAGES/riquadro.jpg" ) ;
imm = Nuova immagine ( "$SAMPLE_IMAGES/riquadro.jpg" ) ;
imgSize = 300 ;
imm << Imposta dimensione ( { imgSize , imgSize } ) ;
Nuova finestra ( "Test" ,
Casella di riepilogo V (
Casella di scorrimento ( 100 , 1000 , imgSize ) ,
Scatola dei bottoni ( "Imposta dimensione" ,
imm = Nuova immagine ( originaleImg ) ;
imm << Imposta dimensione ( { imgSize , imgSize } ) ;
pb << Imposta immagine ( imm ) ;
) ,
pb = Scatola delle immagini ( imm )
)
);
Ri: Modificare la dimensione dell'immagineSe il riferimento all'immagine originale è sconosciuto nel contesto in cui viene eseguito il codice, una soluzione per il problema di degradazione potrebbe essere una copia invisibile della finestra immagine originale.
Un esempio (non uno qualsiasi però):
nw = Nuova finestra ( "Test" ,
Casella di riepilogo V (
Casella di scorrimento ( 100 , 1000 , imgSize ) ,
Scatola dei bottoni ( "Imposta dimensione" ,
origImage = pb1 << Ottieni immagine ;
origImage << Imposta dimensione ({ imgSize , imgSize }) ;
pb << Imposta immagine ( origImage ) ;
) ,
pb = Scatola delle immagini ( imm ) ,
pb1 = Scatola delle immagini ( imm ) ;
pb1 << visibilità ( crollato )
)
) ;