Oon justiin alotellut vb:llä ja nyt yritän vääntää kuvien näyttöohjelmaa.
Oon yrittäny googlettaa mutta en oikeen ymmärrä.
Mulla siis on picturebox johon haen kuvan, mutta kun nuo kuvat tuppaa olemaan vähän turhan isoja. Miten saisin pienennettyä kuvat sopiviks mun pictureboxiin?
Osaisiko joku selittää selvästi että aloittelija pysyisi perässä?
Varmaan helpoin ratkaisu on käyttää PictureBoxin asemesta Image-kontrollia. Siinä on nimittäin valmis Stretch-ominaisuus, ja kun sen arvoksi valitaan True, kuva muuttuu suoraan halutun kokoiseksi. Imagen voi laittaa myös PictureBoxin sisään tarvittaessa.
Toinen tapa on käyttää kahta PictureBoxia. Toisen (Picture1) AutoSize on True ja Visible on False. Toiseen (Picture2) tulee varsinainen kuva. Aluksi kuva ladataan näkymättömään Picture1-kontrolliin. Sitten se kopioidaan oikean kokoiseksi Picture2-kontrolliin:
Picture2.PaintPicture Picture1, 0, 0, Picture2.Width, Picture2.Height, 0, 0, Picture1.Width, Picture1.Height
Kiitos. Sain tuon toimimaan. Tein tuolla vaikeemmalla tavalla, että sain kuvat tulostettua oikeessa suhteessa. Ehkäpä sama olis jotenkin toiminut tuolla image controllilla, mutta en jaksanut keksiä ratkaisua siihen.
Mutta nyt oon saanut ohjelmaan jo "Avaa" systeemin common dialogilla. nyt kun avaan kuvan tuolla niin siihen kuvaan jää musta läikkä kohdalle missä tuo avaa-ruutu oli. Miten saisin tuon korjattua? pitääkö kuva jotenkin päivittää?
onko kuvan autoredraw ominaisuus true ?
Juuri tässä on ongelman ratkaisu. Kun kuvan AutoRedraw on True, sen sisältö piirretään tarpeen tullen uudestaan.
Kannattaa myös tehdä Picture2.Refresh tuon PaintPicturen jälkeen kun AutoRedraw on asetettu päälle, koska kuva ei päivity ennen kuin sen refreshaa.
Sitten näin ohimennen: tämä mahdollistaa myös helpon tuplapuskuroinnin.
Ilman AutoRedrawiakin voi elää, jos laittaa piirtämisen kuvan Picture2_Paint() proseduuriin. Tosin tällöin kuvalla ei voi olla AutoRedrawia ja jos Refreshin laittaa Paintiin, niin sen jälkeen ohjelma jää onnellisesti jumiin (koska Paint tulee kutsutuksi jatkuvalla syötöllä).
Aihe on jo aika vanha, joten et voi enää vastata siihen.