Avatar billede fizz Nybegynder
25. august 2005 - 23:10 Der er 7 kommentarer og
1 løsning

Resample a lá BitBlt / StrechBlt

findes der ikke en simpel måde at resample et billede i en picturebox på UDEN dll'er eller 5135135 modules og classes

noget i stil med BitBlt eller StrechBlt

...tak
Avatar billede sjh Nybegynder
26. august 2005 - 00:35 #1
du kan bruge PaintPicture()

Option Explicit

Private Sub Form_Load()
Dim intWidth As Integer
Dim intHeight As Integer

  intWidth = 150
  intHeight = 120

  With Picture1
      .Picture = LoadPicture("C:\bla\bla\billede.jpg")
      .AutoRedraw = True
      .ScaleMode = 3
      .PaintPicture .Picture, 0, 0, intWidth, intHeight, 0, 0, .ScaleWidth, .ScaleHeight
      .Width = (intWidth * Screen.TwipsPerPixelX)
      .Height = (intHeight * Screen.TwipsPerPixelY)
  End With
End Sub
Avatar billede fizz Nybegynder
27. august 2005 - 07:46 #2
jeg sagde resample.... ikke resize, det kan jeg selv finde ud af

det er for at undgå de "grove" firkanter nar man laver thumb's af store billeder
Avatar billede sjh Nybegynder
27. august 2005 - 17:02 #3
"grove" firkanter?? er det ikke det den gør da??

problemet er vel at den normal vil lave "grove" firkanter.. når man resize et billede.. men ved brug af PaintPicture() resize så skulle den ikke gøre det..

skulle også lige ha .AutoSize = True på..

Private Sub Form_Load()
Dim intWidth As Integer
Dim intHeight As Integer

  intWidth = 150
  intHeight = 120

  With Picture1
      .AutoRedraw = True
      .ScaleMode = 3
      .AutoSize = True
      .Picture = LoadPicture("C:\bla\bla\billede.jpg")
      .PaintPicture .Picture, 0, 0, intWidth, intHeight, 0, 0, .ScaleWidth, .ScaleHeight
      .Width = (intWidth * Screen.TwipsPerPixelX)
      .Height = (intHeight * Screen.TwipsPerPixelY)
  End With
End Sub
Avatar billede sjh Nybegynder
27. august 2005 - 17:22 #4
Nej kan godt se den ikke gør det.. så er der nok kun API tilbage.. men det er da også hurtiger at gøre det med API..
Avatar billede sjh Nybegynder
27. august 2005 - 17:23 #5
Avatar billede sjh Nybegynder
27. august 2005 - 17:25 #6
den bruger kun 2 classmoduler :D  (5135135 - 2) så kan du spare 5135133 modules :D
Avatar billede fizz Nybegynder
28. august 2005 - 00:16 #7
javel-ja... API frem for DLL... det virker!

ved du om der er nogen mulighed for at "smoothe" billedet noget mere?

læg lige et svar for point... du fortjener kun 149 point da jeg kun sparer 5135133 classes :P
Avatar billede sjh Nybegynder
28. august 2005 - 03:04 #8
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester