Newsgroup: it.comp.lang.visual-basic
Titolo: ancora su ridimensionamento immagine

salve ragazzi ho buttato giu' il seguente codice
    Form1.picBuff.Picture = LoadPicture(App.Path & "\base.bmp")
    Form1.Picture1.PaintPicture Form1.picBuff.Picture, 0, 0, 
Form1.picBuff.Picture.Width, Form1.picBuff.Picture.Height
    Form1.Picture1.Cls
    Form1.Picture1.PaintPicture Form1.picBuff.Picture, 0, 0, 
Form1.picBuff.Picture.Width * (10 / 100), Form1.picBuff.Picture.Height * (10 
/ 100)
    SavePicture Form1.Picture1.Image, App.Path & "\test.bmp"
ma i due problemi che ho sono
1 non mi viene salvata l' immagine ridimensionata e al suo posto mi salva un 
quadrattino grigio mentre nel controllo del picture box si vede 
ridimensionata
2 vorrei mettere il valore di ridimensionamento in pixel e non percentuale
grassie

 ha scritto nel messaggio 
news:435a6fc7$0$20486$4faf...@reader4.news.tin.it...

devi impostare la proprietą ScaleMode = Pixel
e sarebbe meglio impostare anche la proprietą Autoredraw = True
Ciao.

ci sono quasi ora riesco a salvare e il codice e' questo
Form1.picBuff.Picture = LoadPicture(App.Path & "\base.bmp")
Form1.Picture1.PaintPicture Form1.picBuff.Picture, 0, 0, 
Form1.picBuff.Picture.Width, Form1.picBuff.Picture.Height
Form1.Picture1.Cls
Form1.Picture1.Height = Form1.picBuff.Picture.Height * (10 / 100)
Form1.Picture1.Width = Form1.picBuff.Picture.Width * (10 / 100)
Form1.Picture1.PaintPicture Form1.picBuff.Picture, 0, 0, 
Form1.picBuff.Picture.Width * (10 / 100), Form1.picBuff.Picture.Height * (10 
/ 100)
SavePicture Form1.Picture1.Image, App.Path & "\test.bmp"
ma non capisco  il discorso pixel percentuale , se imposto scale mode pixel 
e al posto
dei picBuff.Picture.Width * (10 / 100) metto un numero fisso es 100 ( 
dovrebbero essere i pixel) mi da errore autoredraw
non capisco che sbaglio , forse i pixel vanno calcolati in un qualche modo ?
ciaoo
 

Altra cosa che ho notato e che la percentuale di riduzione non corrisponde a 
quella impostata , e non so il perche
in teoria questo qui sotto dovrebbe essere un 10 %
Form1.picBuff.Picture.Width * (10 / 100)
ma nella realta l' immagine mi mi esce circa al 18 %


aspetta... non ho seguito il thread, ma sara` bene chiarire una cosa:
la modifica percentuale e` riferita alle *dimensioni* (altezza e
larghezza) o alla *superficie* dell'immagine?
perche` le cose cambiano... e non poco!
-- 
ciao, hal

il codice che ho buttato giu' e' questo
Form1.picBuff.Picture = LoadPicture(App.Path & "\base.bmp")
Form1.Picture1.PaintPicture Form1.picBuff.Picture, 0, 0,
Form1.picBuff.Picture.Width, Form1.picBuff.Picture.Height
Form1.Picture1.Cls
Form1.Picture1.Height = Form1.picBuff.Picture.Height * (10 / 100)
Form1.Picture1.Width = Form1.picBuff.Picture.Width * (10 / 100)
Form1.Picture1.PaintPicture Form1.picBuff.Picture, 0, 0,
Form1.picBuff.Picture.Width * (10 / 100), Form1.picBuff.Picture.Height * (10
/ 100)
SavePicture Form1.Picture1.Image, App.Path & "\test.bmp"
che mi scala l' immagine in base  a non so cosa (in teoria dovrebbe fare un 
10%),
comunque io dovrei scalarla dandogli altezza e larghezza espresse in pixel e 
salvare l' immagine ma non ho capito come fare , il codice qui' sopra l' ho 
reperito in giro e l' ho modificato un po'

 ha scritto nel messaggio 
news:435ca966$0$24634$4faf...@reader3.news.tin.it...

Me.PaintPicture Picture1.Image, 0, 0, 100, 100, 0, 0, Picture1.Width, 
Picture1.Height
il parametro 2 e 3 sono le coordinate X,Y di destinazione dell'immagine
il parametro 4 e 5 sono larghezza e altezza dell'immagine destinazione
il parametro 6 e 7 sono le coordinate X,Y di inizio lettura dell'immagine di 
origine
il parametro 8 e 9 sono la larghezza e l'altezza dal punto di partenza del 
parametro 6 e 7
modificando a piacere i parametri 4 e 5 poi regolare la scalatura che 
desideravi, in pixel.
Spero di essermi spiegato bene.
Ciao.

 qui' sopra l' ho reperito in giro e l' ho modificato un po'
devi settare la scalemode in pixel e non in twips pero' un rapporto e' un 
rapporto (consensiente o meno)
Form1.picBuff.Picture.Width * (10 / 100) e
Form1.picBuff.Picture.Height * (10/ 100) dovrebbero appunto scalare le 
dimensioni dell'oggetto del 10% in larghezza e altezza ... bho, mi son 
accodato all'ultimo senza leggere il 3ad ...
-- 
[Gigio2k]
Accorcia i link gratis e in modo semplice :
G2kSnipUrl : 
http://www.g2kweb.it/?3015
---> No alla CONFISCA delle moto : 
http://www.maxkava.com/moto
 <--- 

ecco a che punto sono :
con queste modifiche son messo peggio di prima
Form1.picBuff.Picture = LoadPicture(App.Path & "\base.bmp")
Form1.Picture1.PaintPicture Form1.picBuff.Picture, 0, 0, 
Form1.picBuff.Picture.Width, Form1.picBuff.Picture.Height
Form1.Picture1.Cls
Form1.Picture1.Height = 100
Form1.Picture1.Width = 100
Form1.Picture1.PaintPicture Form1.picBuff.Picture, 0, 0, 100, 100, 0, 0, 
Form1.picBuff.Picture.Width, Form1.picBuff.Picture.Height
SavePicture Form1.Picture1.Image, App.Path & "\test.bmp"
teoricamnete dovrebbe salvarmi un immagine di 100*100 pixel (scalemode e' 
impostato a pixel) ma il risultato e' un immagine di 3*3 pixel
oltretutto e' mezzanotte e mezza e mi sto stressando
ciaooo

 ha scritto nel messaggio 
news:435d5fe9$0$24641$4faf...@reader3.news.tin.it...


 della programmazione , ora posso andare a letto contento :)
metti le proprietą della picturebox appearance = Flat, borderstyle = None
nessun mistero, vedra che i 4 pixel non ci saranno piu'.
Ciao ;-) 

 ha scritto nel messaggio 
news:435e7e9b$0$8478$5fc...@news.tiscali.it...
