
ImageResize unter Einbehaltung des Seitenverhältnisses
-
- Beiträge: 40
- Registriert: 05.06.2006 12:38
-
- Beiträge: 40
- Registriert: 05.06.2006 12:38
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
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

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

Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- Thorsten1867
- Beiträge: 1360
- Registriert: 04.02.2005 15:40
- Computerausstattung: [Windows 10 x64] [PB V5.7x]
- Wohnort: Kaufbeuren
- Kontaktdaten:
Ich habe für eines meiner Programme eine entsprechende Procedure geschrieben:
Vielleicht hilfts ja weiter.
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)