Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Client side image resizen

Pagina: 1
Acties:
  • 790 views sinds 30-01-2008
  • Reageer

  • Defector
  • Registratie: December 2005
  • Niet online
Ik ben bezig met een een soort van fotoboek waar mensen meedere plaatjes kunnen uploaden en die worden automatisch geresized enzo. Het werkt op moment zoals het hoort met php.
Maar nog niet helemaal soepel en dat komt omdat de foto's eerst in het geheel geupload worden en daarna geresized worden een beetje onzinnig want je moet lang wachten en je bent voor niks aan het uploaden want de foto's zijn veel kleiner na het resizen.
Dus nu had ik het bedacht om de plaatjes eerst client side te resizen en daarna door te sturen waarna ik met php de rest kan afhandelen. Want dan kunnen er meer plaatjes in een keer verstuurt worden en gaat het sneller.
Het probleem is nu dat ik niet weet hoe ik dat met javascript kan oplossen als ik met google zoek dan krijg ik wel hits op plaatjes resizen en dat soort dingen maar geen voorbeelden die ik kan gebruiken voor mijn probleem.
Dus mijn vraag is nu is het mogelijk om dat te doen en op welke manier moet ik dat aanpakken.

  • lier
  • Registratie: Januari 2004
  • Nu online

lier

MikroTik nerd

Een mogelijke aanpak is gebruik maken van een activex control. Scripts ed zijn naar mijn idee niet toereikend om dergelijke manipulaties uit te voeren.

Eerst het probleem, dan de oplossing


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 18-11 08:25

Janoz

Moderator Devschuur®

!litemod

Dit gaat niet lukken met javascript. Je zult hiervoor inderdaad een java applet of activex component voor moeten maken. Bijkomend nadeel is dat het security technisch nog wel wat problemen op gaat leveren. Een applet of activeX dingetje mag namelijk niet zomaar een bestand van de harde schijf inlezen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Defector
  • Registratie: December 2005
  • Niet online
jammer dus ik zit vast aan php voor het resizen van de plaatjes. En dus automatisch aan lange upload tijden.
En met ajax is het ook niet mogelijk ?

  • Daspeed
  • Registratie: Maart 2001
  • Laatst online: 00:33
De j in ajax staat voor? :P

  • Defector
  • Registratie: December 2005
  • Niet online
javascript maar omdat ajax toch wel een stukje meer kan en wat dynamischer is dan gewoon javascript. Dacht ik ik vraag het even want mijn kennis ervan is niet zo groot. Ik weet alleen grofweg hoe het werkt maar niet de details en wat nou allemaal wel of niet kan

  • frederikske
  • Registratie: Oktober 2002
  • Niet online
Ff een google zoekactie gepleegd; en dit bestaat reeds (wel niet gratis denk ik)

een demo van zo'n java applet

Ik hoop dat het dat is wat je bedoelt.

  • Defector
  • Registratie: December 2005
  • Niet online
ja volgens mij doet het wel wat ik wil maar ik wil niet applets gebruiken want het moet wel toegankelijk blijven want de gebruikers straks die zijn niet echt geweldig met dat soort dingen(applets installeren of uberhaupt java geinstalleerd hebben staan enzo)
Het moet ook zowieso geen geld kosten want het is een hobby project. En ik maak zelf ook nog de afweging hoeveel tijd ik erin moet steken om het te laten werken met een applet. Want het werkt nu al zoals het hoort alleen niet optimaal

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 18-11 17:58

chem

Reist de wereld rond

Een beetje kansloos, maar het kan wel ;)

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
        "http://www.w3.org/TR/REC-html40/strict.dtd">
<html>
    <head>
        <title>test</title>
        <script type="text/javascript">
            function resize(input)
            {
                var canvas = document.createElement('canvas');

                if(!canvas || !canvas.getContext)
                    return;

                canvas.width = 100;
                canvas.height = 100;

                var ctx = canvas.getContext('2d');

                input.parentNode.insertBefore(canvas, input.nextSibling);

                var image = new Image();
                image.src = 'file:///'+input.value.replace(' ','%20');
                document.body.appendChild(image);

                ctx.drawImage(image, 0, 0, 100, 100);
                alert(canvas.toDataURL() );
            }
        </script>
    </head>
    <body>
        <form>
            <input type="file" onchange="resize(this);" size=100>
        </form>
    </body>
</html>


Daarna kan je ipv die alert de dataurl in een textarea zetten en dat server-side decoden.

Nadeel: resizing is spuuglelijk ;)

Voor IE kan je dan wel http://excanvas.sourceforge.net/ gebruiken.

Klaar voor een nieuwe uitdaging.


  • joppybt
  • Registratie: December 2002
  • Laatst online: 08:36
Defector schreef op donderdag 25 januari 2007 @ 16:56:
javascript maar omdat ajax toch wel een stukje meer kan en wat dynamischer is dan gewoon javascript.
Dit is nieuw voor mij. Wat kan Ajax wat niet met JavaScript kan?
Volgens mij is Ajax een denkwijze/methodiek/framework die vaak geïmplementeerd wordt met JavaScript. Het kan niets wat niet ook met JavaScript kan.

  • Defector
  • Registratie: December 2005
  • Niet online
dat geeft al aan hoeveel ik er van snap :P

Mijn idee van ajax is dat het javascript is met de mogelijkheid om te communiceren met de server zonder een pagina refresh.

[ Voor 60% gewijzigd door Defector op 26-01-2007 10:12 ]


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 18-11 17:58

chem

Reist de wereld rond

Defector schreef op Friday 26 January 2007 @ 10:07:
dat geeft al aan hoeveel ik er van snap :P

Mijn idee van ajax is dat het javascript is met de mogelijkheid om te communiceren met de server zonder een pagina refresh.
dat idee klopt wel, alleen moet je het iets anders formuleren: het asynchroon communiceren met de server en het daarbij uitwisselen van XML
Het staat dan ook voor Asynchronous Javascript And XML ;)

Klaar voor een nieuwe uitdaging.


  • Eijkb
  • Registratie: Februari 2003
  • Laatst online: 11:01

Eijkb

Zo.

Kort door de bocht: Zonder clientside applicatie (java, activex) gaat het niet lukken. Je kan de bezoekers ook vragen om het zelf te resizen als ze bekend zijn met programma's, dan heeft nog maar een enkeling last van de lange upload.

.


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 18-11 17:58

chem

Reist de wereld rond

Eijkb schreef op Friday 26 January 2007 @ 10:34:
Kort door de bocht: Zonder clientside applicatie (java, activex) gaat het niet lukken. Je kan de bezoekers ook vragen om het zelf te resizen als ze bekend zijn met programma's, dan heeft nog maar een enkeling last van de lange upload.
mijn oplossing werkt toch?

Klaar voor een nieuwe uitdaging.


  • Wim-Bart
  • Registratie: Mei 2004
  • Laatst online: 10-01-2021

Wim-Bart

Zie signature voor een baan.

Waarom Client-side resizen? Je kan het heel simpel benaderen.

1) Form met foto upload.
2) Foto wordt geupload met .php
3) Je maakt een resize met GD of GD2 in PHP en slaat origineel en resized foto op.
4) Je presenteert de resized foto.

Beheerders, Consultants, Servicedesk medewerkers. We zoeken het allemaal. Stuur mij een PM voor meer info of kijk hier De mooiste ICT'er van Nederland.


  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Wim-Bart schreef op vrijdag 26 januari 2007 @ 10:39:
Waarom Client-side resizen? Je kan het heel simpel benaderen.

1) Form met foto upload.
2) Foto wordt geupload met .php
3) Je maakt een resize met GD of GD2 in PHP en slaat origineel en resized foto op.
4) Je presenteert de resized foto.
Dat gaat dus al mis bij stap 1, TS wil lange upload-tijden voorkomen.

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • xtra
  • Registratie: November 2001
  • Laatst online: 10:57
Je zou kunnen kijken naar de upload wizard die in XP zit. Met een paar speciale webpagina's kun je die voor je eigen site gebruiken. De wizard zorgt dan voor het resizen vooraf.

Werkt alleen in XP (en later) maar gemiddeld zul je daar veel mensen mee kunnen bedienen.

  • DJH
  • Registratie: Oktober 2000
  • Laatst online: 20-10 23:49

DJH

xtra schreef op vrijdag 26 januari 2007 @ 10:56:
Je zou kunnen kijken naar de upload wizard die in XP zit. Met een paar speciale webpagina's kun je die voor je eigen site gebruiken. De wizard zorgt dan voor het resizen vooraf.

Werkt alleen in XP (en later) maar gemiddeld zul je daar veel mensen mee kunnen bedienen.
Excuses voor de late schop, maar wat bedoel je hier precies? Ik ben ook opzoek naar iets dergelijks omdat mijn server een memory_limit van 16MB heeft :(

  • Thombias
  • Registratie: November 2001
  • Niet online
DJH schreef op woensdag 23 april 2008 @ 15:57:
[...]


Excuses voor de late schop, maar wat bedoel je hier precies? Ik ben ook opzoek naar iets dergelijks omdat mijn server een memory_limit van 16MB heeft :(
Precies hier zit ik ook mee. Iemand een idee?

  • Cartman!
  • Registratie: April 2000
  • Niet online
PHP:
1
ini_set('memory_limit', '32M');

al geprobeerd dan? Werkt vaak prima, ook op shared hosting accounts.

  • Tanuki
  • Registratie: Januari 2005
  • Niet online
Een extra bankje geheugen erin knallen is ook geen probleem hoor.

PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

l0c4lh0st schreef op zaterdag 17 mei 2008 @ 15:39:
Een extra bankje geheugen erin knallen is ook geen probleem hoor.
Tuurlijk joh, de vraagsteller heeft problemen met (en dus geen invloed op) bepaalde memory settings in PHP, maar wat geheugen erbij poten is geen probleem? :?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1