webForumDet fria alternativet

aspSmartImage - ändra storlek på bild

ASP

9 svar · 339 visningar · startad av Eclipse

Medlem sedan juli 20003 825 inlägg
Frågan#1

I exemplet står det:
oSmartImage.Resample oSmartImage.OriginalWidth / 2,0

men jag vill inte dela med två, jag vill att bilden ska vara 150 pixlar bred oavsett originalstorleken.

Jag testande
oSmartImage.Resample 150

samt lite varianter men det fungerade givetvis inte...

"it's easy when you know how" - Spocke

Medlem sedan maj 200351 inlägg
#2

Jag kör så här och det funkar:

		objImage.Resample Cint(iNewXSize),Cint(iNewYSize)
		objImage.Quality=80
		objImage.Sharpen
                     objImage.SaveFile(psNewFile)
Medlem sedan juli 20003 825 inlägg
#3

OK... ja, det fungerar men det var inte riktigt så jag menade!

I ditt fall förutsätts att alla bilder har samma proportioner. Jag vill att bilden blir 150 pixlar bred och sen höjden blir vad den blir, proportionellt.

Medlem sedan juli 20003 825 inlägg
#4

Typ så här... (fungerar ej)

oSmartImage.Resample cInt(150), *

Medlem sedan juni 200032 967 inlägg
#5

Om du måste ange båda värdena, så kan du ju alltid räkna ut vad det andra värdet ska bli?

mvh

Medlem sedan juli 20003 825 inlägg
#6

1. Exemplet från boken:
oSmartImage.Resample oSmartImage.OriginalWidth / 2,0

2. Min variant: = procentuellt...
newWidht = 150 / oSmartImage.OriginalWidth
oSmartImage.Resample oSmartImage.OriginalWidth / newWidht

Medlem sedan juni 200032 967 inlägg
#7

Man kanske kan prova något sånt här:

intNewWidth = 150
intNewHeight = Cint(intNewWidth/oSmartImage.OriginalWidth) * oSmartImage.OriginalHeight
oSmartImage.Resample intNewWidth, intNewHeight

Kanske?

Medlem sedan juli 20003 825 inlägg
#8

Nej, jag hajjar nada!

Med din kod blir värdena 150, 0 och det fungerar inte.

intNewHeight = (intNewWidth/oSmartImage.OriginalWidth) * oSmartImage.OriginalHeight
oSmartImage.Resample intNewWidth, Cint(intNewHeight)

Om man skriver så här blir värdena 150, 67 och det fungerar fortfarande inte...

Om jag startar om min dator kanske det fungerar bättre? Eller tar en symbolisk rökpaus....??

Medlem sedan feb. 200269 inlägg
#9

Så här gör jag:

height = oSmartImg.OriginalWidth / 150
oSmartImg.Resample 150, oSmartImg.Originalheight / height

Du delar originalwidth med din tänkta width och får på så sätt
multipeln som höjden skall delas med.

Detta medför dock att bilden kommer förstoras om bredden är mindre än 150, men det torde kunna lösas med en enkel if-sats om man så önskar.

Medlem sedan apr. 20003 174 inlägg
#10

För att bibehålla proportionen på höjden använder jag följande kod och det fungerar klockrent:

[red]Dim oImg
Set oImg = Server.CreateObject("aspSmartImage.SmartImage")
	oImg.OpenFile("myImage.jpg")
	oImg.Resample 150,0
	oImg.Quality = 100
	oImg.SaveFile("myImage.jpg")
Set oImg = Nothing[/red]
257 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)