Jump to content
Sign in to follow this  
jjjjjjjjjjeeeeeeeeeeee

Hvordan endre størrelse på et bilde?

Recommended Posts

Hei jeg holder på og lage et enkelt lite program som laster inn et bilde og legger noen streker oppå det. Dette bruker jeg til å se om bilder jeg har tatt er i det gyldne snitt.

Dette fungerer veldig bra ved små bilder.

 

Men jeg har støtt på et lite problem.. dersom bildene er for store for skjermen går alt helt over styr. Derfor lurer jeg på om noen har en kode for å forminske bilder som er i pictureboxer

(UTEN at bildene mister ratioen sin altså at de ikke blir strukket og forvrengt i lengre og bredde, da mister hele programmet meningen.)

Share this post


Link to post

Se på denne koden:

Option Explicit

Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long

Private Sub Command1_Click()

Dim x, y, color, forskjell

Picture1.Cls

forskjell = VScroll1.Value / 10

For x = 0 To (Source.ScaleWidth * forskjell) - 1

   For y = 0 To (Source.ScaleHeight * forskjell) - 1
   
       color = GetPixel(Source.hdc, Val(x / forskjell), Val(y / forskjell))
       
       SetPixel Picture1.hdc, x, y, color
   
   Next y
   
Next x

End Sub

Private Sub Form_Load()
VScroll1.Min = 1
VScroll1.Max = 10
VScroll1.Value = 5
End Sub

Hvis den ikke gjør noe særlig mening kan jeg laste opp prosjektet ;)

Share this post


Link to post

Det er mye bedre å bruke API-kallet CopyImage til dette formålet. På den måten får man mye bedre kvalitet ved omgjørelsen, samt høyere ytelse. Jeg har vedlagt et eksempel på dette.

 

Men som 86Fredrik nevner er det også mulig å bruke Image-kontrollen, dog med dårligere kvalitet.

Change_Size.zip

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...