Avatar billede hstenbaek Nybegynder
26. april 2003 - 15:24 Der er 1 kommentar og
1 løsning

Centrere indholdet i thumpnail dannet med AspImage

Hej eksperten

Jeg har behov for at få dannet en thumpnail med centreret indhold (vha. AspImage), er der nogen som har en løsning på dette??

Min kode ser således ud:

dim image   
Set Image = Server.CreateObject("AspImage.Image")

dim sImage
sImage = "C:\beach0021.jpg"
     
Image.LoadImage(sImage)
X = Image.MaxX
Y = Image.MaxY

If X > 50 Then
    ResizedX = 50
    ResizedY = (ResizedX * Y/X)
End if

Image.Resize ResizedX, ResizedY
       
if ResizedY < 50 then
    Image.MaxY = 50
end if
       
Image.ImageFormat = 1
Image.JPEGQuality = 100

Image.FileName = Server.MapPath(sImage)
Image.SaveImage

Den danner godt nok en thumpnail med en min højde på 50px, men "indholdet" hænger og svæver i toppen af thumpnailen. Hvis f.eks den først dannede thumpnail er 30px høj, vil jeg gerne have at den skal sidde midt i thumpnailen med 10px "luft" over og under!
Avatar billede mortrr Praktikant
26. april 2003 - 16:01 #1
Det kan måske lade sig gøre at bruge CropImage med negative koordinater.
if ResizedY < 50 then
    Image.CropImage 0,-round((50-ResizedY)/2),50,50
    Image.MaxY = 50
end if
Kan ganske enkelt ikke huske om det kan lade sig gøre eller ej.


Ellers er du nødt til at gemme billedet, og læse det ind på et tomt billede.

Image.Resize ResizedX, ResizedY
       
Image.ImageFormat = 1
Image.JPEGQuality = 100
Image.FileName = Server.MapPath(sImage)
Image.SaveImage

if ResizedY < 50 then
    Image.MaxY = 50
    Image.BackgroundColor = vbWhite
    Image.ClearImage
    Image.AddImage Image.FileName, 0, round((50-ResizedY)/2)
    Image.SaveImage
end if
Avatar billede hstenbaek Nybegynder
26. april 2003 - 18:03 #2
Jeg kan ikke få det til at virke med de negative koordinater, ligesom jeg ikke kan få det til at virke ved brug af samme komponent  - men hvis jeg opretter en ny komponent spiller det ;-)

...
    Image.SaveImage

    dim image1   
    Set Image1 = Server.CreateObject("AspImage.Image")
    Image1.PadSize = 0
    if ResizedY < 150 then
      Image1.MaxY = 150
      Image1.MaxX = 100
      Image1.BackgroundColor = vbWhite
      Image1.AddImage Image.FileName, 0, round((150-ResizedY)/2)
      Image1.FileName = Image.FileName
      Image1.SaveImage
    end if

  Set Image = nothing   
   
Tak for hjælpen!
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