Jag vill visa .jpg -bilder i en imagebox i mitt program. Bilderna har formatet Sätt Imagen:s Stretch Property till = True Jag var tvungen att testa. Jodå verkar funka men en ut-zoomning skulle behövas så att hela bilden får plats. Vadå får plats. ! ? mmm... Image ger en dålig kvalitet när man skalar ner bilden.Du förlorar för mycket i kvalitet. Var tvungen att kolla en gång till ang Image och kvalitet på när jag ändrar skala.bildformat
1600 x 1200 och imagebxens bredd/höhd är anpassade till det. Men några
bilder är tagna med kameran på högkant och sedan blivit vända. Dom får
då formatet 1200 x 1600. Programmet behöver då anpassa bredden på
imageboxen. Men hur får man programmet att känna av bildformatet?Sv: bildformat
http://msdn.microsoft.com/en-us/library/aa445712(VS.60).aspx
Blev lite osäker.
Testa att sätta Imagen till (i designläge) 1200 * 1600
och skifta mellan Stretch = True vs Stretch = False
En annan variant är att du använder en PictureBox med AutoSize = TrueSv:bildformat
Det sköter ju sig själv när Stretch = False.
Lägg in en liten Image 100*100. den växer själv vid växling av bild till rätt storlek.
Se till att vänster övre hörn ligger så det passar båda fallen.
Lägg eventuellt in en If sats som justerar detta hörn efter 1600 eller 1200
OBS sätt Formens ScaleMode = 3 (Pixel)
Använd Image1.Move om du vill centrera bilden.
<code>
Image1.Move (Form1.Width - Image1.Width) \ 2, _
(Form1.Height - Image1.Height) \ 2
</code>Sv: bildformat
// Tor ErikSv:bildformat
Du får ju klart ha en Form och skärm som tar 1600 *1200.
Om inte kommer Vi in på en annan teknik nämligen att scala om bilden till tex 800 * 600 / 600*800
Vill du ha det så ?Sv:bildformat
Därför skall du använda en PictureBox som du ställer i ScaleMod = 3 (Pixel) och AutoSize till True.
Börja med det. Skall hitta på en formel så du kan köra både 1600*1200 och 1200*1600 bilder
med bibehållen kvalitet. Börja med en stor Form och lägg in Picturebox 800*600 AutoSize=True
Juster som du vill men bibehåll förhållandet 1600 till 1200 på PictureBoxen Dvs 1.3333 till 1
Är höjden 600 pix skall vidden vara 798 pix = (600*1.3333) på PictureBoxen
När du sedan kör en bild som är 1200*1600 får Vi använda 0,75 till 1
Dvs höjden 600 ger vidd 450 . <b>OCH AutoSize = True ScaleMode = 3</b>Sv: bildformat
Jag hade strulat till det. Du kan använda Image precis som beskrivits ovan.
Tillverka en Image som har förhållande 1600 * 1200 Dvs 1.3333 till 1
Sätt <b>Stretch = True</b> och ta sedan in din bild.
Utgå alltid från höjden på din Image. ex höjd 480 blir (480 * 1.3333) = vidd 640
Omvänt höjd 480 ger (480 * 0.75) = vidd 360 när du kör 1200 * 1600 bild
Lägg det senare på en knapp och rotera rätt om det visar sig att bilden ligger ner.
<code>
'centrera bilden på Formen
Image1.Move (Form1.Width - Image1.Width) \ 2, _
(Form1.Height - Image1.Height) \ 2
</code>
OBS Sätt Formens ScaleMode = 3 (Pixel)