Avatar billede jens Nybegynder
28. oktober 2000 - 00:23 Der er 13 kommentarer og
1 løsning

Lav en tumbnail af billedet efter upload til server

Hej

Jeg skal uploade et jpg billede. Det er pænt stort, og jeg vil derfor gerne generer en tumbnail af dette billede - hvorn\' kan det gøres.

Jeg har adgang til AspImage hvis det kan være til nogen hjælp!

Kodeeksempler modtages med digital kyssehånd ;-)

Hilsen
Jens
Avatar billede jens Nybegynder
28. oktober 2000 - 00:24 #1
For at tage misforståelser i forkøbet - der skal være to kopier af billedet, et stort, og et som er en tumbnail
Avatar billede tarantula Nybegynder
28. oktober 2000 - 00:30 #2
Du kan bruge dette...
<script LANGUAGE=\"javascript\">
<!--

// Script By Henrik Jensen
// Visit http://www.viewsource.dk
// for lots of free Java Applets
// DHTML and JavaScripts
// Feel free to use this script
// if you leave this message intact


imgpath=\"images/\"
imgtype=\".jpg\"
currID = 5
imgname=new Array();

imgname[0] = \"img1\";
imgname[1] = \"img2\";
imgname[2] = \"img3\";
imgname[3] = \"img4\";

function fnimgswap(id)
{
  if (id != currID)
  {
    document.images[\"imgswap\"].src=imgpath+imgname[id]+imgtype;
    currID = id;
  }
  else
  {
    document.images[\"imgswap\"].src=\'images/img0.jpg\'
    currID = id+1;
  } 
}

function displayWindow(url, width, height)
{
        var Win = window.open(url,\"displayWindow\",\'width=\' + width + \',height=\' + height + \',left=0,top=0,resizable=no,scrollbars=no,menubar=no,status=no\' );
               
}
//-->
</script>

Det skal ind i <head> derefter

<table BORDER=\"3\" CELLSPACING=\"5\" CELLPADDING=\"5\">
        <tr>
        <td><a href=\"java script:displayWindow(\'images/L-img1.jpg\',333,423)\" onmouseover=\"java script:fnimgswap(\'0\')\" onMouseout=\"java script:fnimgswap(\'0\')\">Billede 1</a></td>
        <td rowspan=4><img id=\"imgswap\" name=\"imgswap\" src=\"images/img0.jpg\"></td>
        </tr>
        <tr>
        <td><a href=\"java script:displayWindow(\'images/L-img2.jpg\',333,423)\" onmouseover=\"java script:fnimgswap(\'1\')\" onMouseout=\"java script:fnimgswap(\'1\')\">Billede 2</a></td>
        </tr>
        <tr>
        <td><a href=\"java script:displayWindow(\'images/L-img3.jpg\',333,423)\" onmouseover=\"java script:fnimgswap(\'2\')\" onMouseout=\"java script:fnimgswap(\'2\')\">Billede 3</a></td>
        </tr>
        <tr>
        <td><a href=\"java script:displayWindow(\'images/L-img4.jpg\',333,423)\" onmouseover=\"java script:fnimgswap(\'3\')\" onMouseout=\"java script:fnimgswap(\'3\')\">Billede 4</a></td>
        </tr>
        </table>

Det skal ind i <body>

Håber du kan bruge det...
Rene
Avatar billede ldanielsen Nybegynder
28. oktober 2000 - 00:35 #3
Her er et bud:

<%
Sub Resize (stImage_in, iWidth)

    \'******** Laver objectet ********************************************
    set obj=Server.CreateObject(\"Aspimage.image\")

    obj.Loadimage stImage_in

    \'******** Finder dimensioner for billedet og destination ***************************
    originalWidth = obj.MaxX
    originalHeight = obj.MaxY
    miniWidth = iWidth
    miniHeight = originalHeight*iWidth/originalWidth

    \'******** Resizer billedet ********************
    obj.ImageFormat = 1
    obj.Resize miniWidth, miniHeight
   
    ext = Right(stImage_in,3)
    if ext = \"jpg\" then obj.ImageFormat = 1
    if ext = \"png\" then obj.ImageFormat = 3
    \'**** Hvor skal det gemmes? *****
    obj.Filename = \"mini/\"&stImage_in

    obj.SaveImage
    Set obj = nothing

End Sub
%>

Find selv ud af at få destinationen rigtig, denne gemmer i en undermappe der hedder mini, og skal køres fra det bibliotek hvor billedet ligger
Avatar billede jens Nybegynder
28. oktober 2000 - 00:35 #4
Hej Rene

Inden jeg begynder at se på det,, kan det også gemme en kopi på serveren ?

- Jens
Avatar billede tarantula Nybegynder
28. oktober 2000 - 00:39 #5
??? gemme et billede på hvilken server ?
Avatar billede tarantula Nybegynder
28. oktober 2000 - 00:40 #6
Jeg tror ikke jeg helt er med på hvad du mener...
Avatar billede jens Nybegynder
28. oktober 2000 - 00:41 #7
Rene>> Naaa, det var ikke lige det jeg mente - har lige prøvet det - jeg skal have en tumbnail fordi det andet billede fylder for meget. Altså skal der gemmes en tumbnail på serveren..

men tak alligevel

Jens
Avatar billede jens Nybegynder
28. oktober 2000 - 00:41 #8
ldanielsen>> går straks igang med at teste... ser spændene ud
Avatar billede tarantula Nybegynder
28. oktober 2000 - 00:43 #9
Nååå den vej rundt... hmm... jeg har ikke lige hjerneceller til at krænke den lige nu... men måske imorgen :-)))
Avatar billede ldanielsen Nybegynder
28. oktober 2000 - 00:44 #10
Husk lige at IUSR_MACHINENAME skal have read-write-delete access til mappen.

Jeg bruger helst ShotGraph til sådan noget, så mit script er måske ikke helt på toppen, men der findes da en fin dokumentation på nettet, for en anden gangs skyld.
Avatar billede jens Nybegynder
28. oktober 2000 - 01:52 #11
Det har det sikkert, men spørger alligevel..

ldanielsen>> har det virket for dig ?? jeg har rodet lidt med det og det gemme fint et tumbnail, men der er bare ikke noget billede i filen ??

Forslag, eller skal jeg forklare mig mere detaljeret ?

Hilsen
Jens


Avatar billede ldanielsen Nybegynder
28. oktober 2000 - 15:30 #12
Jeg finder lige billedformatet inden jeg resizer, måske hjælper det:

<%
Sub Resize (stImage_in, iWidth)

    \'******** Laver objectet ********************************************
    set obj=Server.CreateObject(\"Aspimage.image\")

    obj.Loadimage stImage_in

    \'******** Finder dimensioner for billedet og destination ***************************
    originalWidth = obj.MaxX
    originalHeight = obj.MaxY
    miniWidth = iWidth
    miniHeight = originalHeight*iWidth/originalWidth

    \'******** Resizer billedet ********************
    ext = Right(stImage_in,3)
    if ext = \"jpg\" then obj.ImageFormat = 1
    if ext = \"png\" then obj.ImageFormat = 3

    obj.ImageFormat = 1
    obj.Resize miniWidth, miniHeight
   
    \'**** Hvor skal det gemmes? *****
    obj.Filename = \"mini/\"&stImage_in

    obj.SaveImage
    Set obj = nothing

End Sub
%>

Jeg kender som sagt ikke ASPImage så godt, men det har nu virket.

stImage_in skal være en logisk sti (c:\\blabla\\bla.jpg), brug evt Server.MapPath
Avatar billede jens Nybegynder
28. oktober 2000 - 21:34 #13
Hej igen idanielsen

Nu har jeg vendt og drejet det de sidste mange timer. Jeg kan danne et billede med den dimension jeg sætter - men det er et nyt billede ( eller faktisk bare et hvidt billede ).

Hvordan vil du sætte billedet ind - jeg vedlægger koden igen, med de modifikationer som det her lige nu, altså der hvor jeg giver op ;-)

<%
\'Sub Resize (stImage_in, iWidth)

\'stImage_in = \"d:\\www2\\pow\\log\\mail3\\fotoalbum\\tumbtest\\billede_side6.jpg\"

\'iWidth = 50

    \'******** Laver objectet ********************************************
    set obj=Server.CreateObject(\"Aspimage.image\")

    obj.Loadimage  \"d:\\www2\\pow\\log\\mail3\\fotoalbum\\tumbtest\\billede_side6.jpg\"


    \'******** Finder dimensioner for billedet og destination ***************************
    originalWidth = obj.MaxX
    originalHeight = obj.MaxY
    miniWidth = 50
    miniHeight = originalHeight*50/originalWidth

   
    \'******** Resizer billedet ********************
    \'ext = Right(stImage_in,3)
    \'if ext = \"jpg\" then obj.ImageFormat = 1
    \'if ext = \"png\" then obj.ImageFormat = 3

    obj.ImageFormat = 1
    obj.Resize miniWidth, miniHeight

   
    \'**** Hvor skal det gemmes? *****
    obj.Filename = \"d:\\www2\\pow\\log\\mail3\\fotoalbum\\tumbtest\\mini\\lille.jpg\"

    obj.SaveImage
    Set obj = nothing

\'End Sub
%>


Som det er her, så giver det resultatet:

Microsoft VBScript runtime error \'800a0006\'

Overflow

Fejlen er i linie 21 ..
miniHeight = originalHeight*50/originalWidth

Men som sagt, så kan jeg sagtens få det til at lave en fil, men det er bare et JPG med hvis baggrund..

Hvis du kan hjælpe her så det kommer til at spille, så smider jeg gerne 200 point mere på - nu er der sgi gået sport i at få det til at virke ;-)

Jens
Avatar billede jens Nybegynder
29. oktober 2000 - 11:30 #14
Så virker det endelig :-) - der skulle bare files lidt i koden og så var den der, hurra.

Takker mange gange Idanielsen
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