Seite 2 von 2

Verfasst: 05.06.2006 14:44
von Slut-Hunter
Hab gesucht nach Seitenverhältniss und Aspect Ratio, hab aber nichts bis auf Schnipsel die viel zu hoch für mich sind gefunden. :D

Verfasst: 05.06.2006 14:52
von Macros
Resizeimage()
(wenn man das nicht kennt, hilft ja F1)
oder
Bildgröße
wären mögliche Suchbegriffe gewesen

Verfasst: 05.06.2006 15:09
von Franky
[offtopic]
@Kaeru:
Bist du mit dem verwandt? ;)
[/offtopic]

Verfasst: 05.06.2006 15:10
von Slut-Hunter
Resizeimage kannte ich ja schon, ging ja drum das ich nicht wusste wie man das so ausrechnet das das Seitenverhältniss einbehalten wird.(bin extrem schlecht in Mathe^^)

Wie auch immer, jetzt weiss ich ja wie es geht, danke nochmals an Kaeru Gamman und Kiffi.

Verfasst: 05.06.2006 15:16
von Kaeru Gaman
das meine ich ja. so eine winzige information wie diesen dreisatz in einem wust von 85 threads die die suche ausspuckt zu finden, ist ein greul.

davon ab: dies ist der anfänger bereich, wir möchten doch vermeiden, fragesteller nur auf die boardsuche hinzuweisen.

@Franky
:lol:

Verfasst: 14.06.2006 15:56
von Thorsten1867
Ich habe für eines meiner Programme eine entsprechende Procedure geschrieben:

Code: Alles auswählen

; Resize Image with Aspect Ratio
; Thorsten Hoeppner
; PureBasic V4
;
Procedure ResizeImgAR(ImgID.l,Width.l,height.l) 
  Define.l OriW, OriH, w, h, oriAR, newAR
  Define.f fw, fh
  OriW=ImageWidth(ImgID)
  OriH=ImageHeight(ImgID)
  If (OriH > OriW And height < Width) Or (OriH < OriW And height > Width)
    Swap Width, height
  EndIf
  ; Calc Factor
  fw = Width/OriW
  fh = height/OriH
  ; Calc AspectRatio
  oriAR = Round((OriW / OriH) * 10,0)
  newAR = Round((Width / height) * 10,0)
  ; AspectRatio correct?
  If oriAR = newAR 
    w = Width
    h = height
  ElseIf OriW * fh <= Width
    w = OriW * fh
    h = OriH * fh
  ElseIf OriH * fw <= height
    w = OriW * fw
    h = OriH * fw  
  EndIf
  ResizeImage(ImgID,w,h,#PB_Image_Smooth) 
EndProcedure

LoadImage(1, "C:\Testbild.jpg")
ResizeImgAR(1,400,300)
Vielleicht hilfts ja weiter.