IndexProfielRegistrerenHelpActive TopicsSearch Inloggen
Index / Administration Nieuw Topic Post Reply
Auteur:
Topic : Welk script voor image check?
Danas
Usericon van Danas
Posted 24-01-2005 14:21 by Danas Wijzig reactieProfiel van DanasQuote dit bericht

Ik zie hier op het forum dat de plaatjes altijd (ongeacht of ze bestaan) meteen worden weer gegeven en er pas achteraf wordt gecontrolleerd of ze ook daadwerkelijk bestaan, zo niet komt er een mooi vervangend plaatje.

Ik ben erg benieuwd welk script julie hiervoor gebruiken. ik gebruikte zelf een php-code maar omdat php eerst het hele script moet hebben doorlopen voordat de pagina wordt weergegeven duurde het soms wel langer dan een minuut als de host niet meer bestond...

Graag een reactie via mail of het forum.


Snaack
Usericon van Snaack
Posted 24-01-2005 15:15 by Snaack Wijzig reactieProfiel van SnaackQuote dit bericht

Dat is echt erg simpel hahahaha

<img src="bladiebla.gif" onerror="this.src='pad_naar_alternatief_plaatje';"/>


Zoiets..

In dit draadje kan je dat soort vragen trouwens beter kwijt:

http://forum.zwaremetalen.com/forum_topic/1520657



Danas
Usericon van Danas
Posted 24-01-2005 16:07 by Danas Wijzig reactieProfiel van DanasQuote dit bericht

soms zijn dingen inderdaad ook zo simpel dat je er niet op kan komen

weet jij hoe ik het resultaat (error of ok) kan doorgeven aan een php-functie zodat ik bij geen error de image size kan laten opvragen en zonodig verkleinen?


Snaack
Usericon van Snaack
Posted 24-01-2005 16:09 by Snaack Wijzig reactieProfiel van SnaackQuote dit bericht

dan gaat het alsnog niet snel werken

Edit: je moet dan vanuit de client iets op de server gaan doen, dus tijdens het opvragen van de paginá het resultaat per image naar een php-script in een nul-frame o.i.d. submitten en de output daarvan weer runtime op je pagina verwerken.

Het kan wel, maar je moet het niet doen

Gewoon geen image-size opgeven. Dan zoekt de browser het zelf uit!

[Dit bericht is gewijzigd door Snaack op 24-01-2005 16:11]


helmet
Smaad
Usericon van helmet
Posted 24-01-2005 16:18 by helmet Wijzig reactieProfiel van helmetQuote dit berichthttp://www.wovendarkness.com

quote:
Op 24 januari 2005 16:09 schreef Snaack het volgende:
php-script in een nul-frame o.i.d. submitten en de output daarvan weer runtime op je pagina verwerken.

nul-frames zijn zo 2003! XML objecten!


I'm not being rude. You're just insignificant.


Danas
Usericon van Danas
Posted 24-01-2005 16:48 by Danas Wijzig reactieProfiel van DanasQuote dit bericht

wat ik wil is images die te groot zijn resizen zodat m'n layout niet naar de klote gaat. Ik kan natuurlijk alles naar een vaste breedte resizen maar daar heb ik geen zin in (plaatjes van 10 pixels worden ineens 450 pixels breedt...)

hoe kan ik de te grote plaatjes dan toch laten resizen?


altx
Iron Maiden's gonna get you
Usericon van altx
Posted 24-01-2005 16:58 by altx Wijzig reactieProfiel van altxQuote dit bericht

quote:
Op 24 januari 2005 16:48 schreef Danas het volgende:
wat ik wil is images die te groot zijn resizen zodat m'n layout niet naar de klote gaat. Ik kan natuurlijk alles naar een vaste breedte resizen maar daar heb ik geen zin in (plaatjes van 10 pixels worden ineens 450 pixels breedt...)

hoe kan ik de te grote plaatjes dan toch laten resizen?


Moet het per se in PHP of mag het ook in JavaScript?
(PHP is moeilijk, JavaScript is makkelijk.)


Scream for mercy // He laughs as he's watching you bleed // Killer behind you // His blood lust defies all his needs // Look out I'm coming for you!


Danas
Usericon van Danas
Posted 24-01-2005 16:59 by Danas Wijzig reactieProfiel van DanasQuote dit bericht

alles mag, als het maar werkt

als java de image kan controlleren op breedte en resizen indien nodig (nadat de pagina is geladen om vertraging te voorkomen) is het goed.


altx
Iron Maiden's gonna get you
Usericon van altx
Posted 24-01-2005 17:05 by altx Wijzig reactieProfiel van altxQuote dit bericht

quote:
Op 24 januari 2005 16:59 schreef Danas het volgende:
alles mag, als het maar werkt

als java de image kan controlleren op breedte en resizen indien nodig (nadat de pagina is geladen om vertraging te voorkomen) is het goed.


Je kan in JavaScript een onload-handler aan een plaatje hangen, waarin je de width en de height-property van het plaatje controleert of een van beide (of allebei) te groot is en eventueel dan op een kleinere waarde zetten. En - als je 100% zeker wilt weten dat de verhoudingen hetzelfde blijven - moet je de andere even uitrekenen en dan ook handmatig zetten.

Ik heb zelf ooit ook zoiets gevogeld en toen had ik een plaatje van 400 x 300 (om maar een voorbeeld te noemen). Toen ik de width op 200 zette, bleef de height op 300 staan, hetgeen niet helemaal het goede resultaat gaf. Maar als je zelf dan even de height uitrekent (300 * 200/400 in dit specifieke geval), dan weet je 100% zeker dat het goed gaat.

Ik heb het toen by the way onder een paar verschillende versies van Internet Explorer, Opera en Netscape getest, dus wat dat betreft moet het wel goed zitten.

[Dit bericht is gewijzigd door altx op 24-01-2005 17:06]


Scream for mercy // He laughs as he's watching you bleed // Killer behind you // His blood lust defies all his needs // Look out I'm coming for you!


Snaack
Usericon van Snaack
Posted 24-01-2005 17:07 by Snaack Wijzig reactieProfiel van SnaackQuote dit bericht

quote:
Op 24 januari 2005 16:48 schreef Danas het volgende:
wat ik wil is images die te groot zijn resizen zodat m'n layout niet naar de klote gaat. Ik kan natuurlijk alles naar een vaste breedte resizen maar daar heb ik geen zin in (plaatjes van 10 pixels worden ineens 450 pixels breedt...)

hoe kan ik de te grote plaatjes dan toch laten resizen?


Ik neem aan dat het over een forum/ gastenboek achtig iets gaat???

Dan kan je bij het posten van content de grootte van de afbeeldingen checken en evt resizen en op je server zetten.


Danas
Usericon van Danas
Posted 24-01-2005 17:08 by Danas Wijzig reactieProfiel van DanasQuote dit bericht

klinkt leuk maar heb je ook een voorbeeldje? php lukt me wel maar in java ben ik niet zo thuis


Danas
Usericon van Danas
Posted 24-01-2005 17:12 by Danas Wijzig reactieProfiel van DanasQuote dit bericht

quote:
Op 24 januari 2005 17:07 schreef Snaack het volgende:Dan kan je bij het posten van content de grootte van de afbeeldingen checken en evt resizen en op je server zetten.

zeker in dat geval hoeft het maar 1 keer, probleem is echter wel dat we niet zoveel server ruimte hebben en dus zo min mogelijk op onze eigen server hosten. is een goede oplossing maar alleen geen optie voor ons...

[Dit bericht is gewijzigd door Danas op 24-01-2005 17:13]


altx
Iron Maiden's gonna get you
Usericon van altx
Posted 24-01-2005 17:16 by altx Wijzig reactieProfiel van altxQuote dit bericht

Ik hoop dat het volgende goed is, want ik heb het ff snel gekopieerd en aangepast. Zo niet, moet je zelf maar ff wat experimenteren...


function resize_image(img, maxwidth, maxheight)
{
var oldwidth = img.width;
var oldheight = img.height;

if (oldwidth > maxwidth || oldheight > maxheight)
{
if ((oldwidth / maxwidth) > (oldheight / maxheight))
{
img.width = maxwidth;
img.height = oldheight / (oldwidth / maxwidth);
}
else
{
img.height = maxheight;
img.width = oldwidth / (oldheight / maxheight);
}
}
}




En dan:

<IMG onload="resize_image(self, MAXWIDTH, MAXHEIGHT);">


waarbij MAXWIDTH en MAXHEIGHT dus de maximale breedte en hoogte van een plaatje zijn.


Scream for mercy // He laughs as he's watching you bleed // Killer behind you // His blood lust defies all his needs // Look out I'm coming for you!


Danas
Usericon van Danas
Posted 24-01-2005 17:41 by Danas Wijzig reactieProfiel van DanasQuote dit bericht

ik heb de code iets gereduceerd omdat de hoogte er niet toe doet.


<script language="JavaScript1.2">
function resize_image(img, maxwidth)
{
var oldwidth = img.width;
var oldheight = img.height;

if (oldwidth > maxwidth)
{
img.width = maxwidth;
img.height = oldheight / (oldwidth / maxwidth);
}
else
{
}
}
</script>


<IMG onload="resize_image(http://taka.szm.sk/shimo/picm/krigo.jpg, 25);">


deze code resulteerd alleen in een plaatje wat niet geladen wordt. de pagina geeft wel 'gereed' aan.


altx
Iron Maiden's gonna get you
Usericon van altx
Posted 24-01-2005 17:51 by altx Wijzig reactieProfiel van altxQuote dit bericht

Sorry, die "self" moet "this" zijn. (Ik ben Delphi-programmeur en in Delphi heet dat ding "self" (de pointer naar het huidige object).

Je hebt nu een URL daar staan (en niet eens tussen aanhalingstekens), maar je moet voor die parameter het Image-object zelf aangeven. En in de onload van een plaatje zou "this" (zonder de aanhalingstekens al voldoende moeten zijn).


Scream for mercy // He laughs as he's watching you bleed // Killer behind you // His blood lust defies all his needs // Look out I'm coming for you!


Danas
Usericon van Danas
Posted 24-01-2005 17:59 by Danas Wijzig reactieProfiel van DanasQuote dit bericht

oke dit werkt.


<script>
function resize_image(img, maxwidth)
{
var oldwidth = img.width;
var oldheight = img.height;

if (oldwidth > maxwidth)
{
img.width = maxwidth;
img.height = oldheight / (oldwidth / maxwidth);
}
else
{
}
}
</script>


<IMG src="http://taka.szm.sk/shimo/picm/krigo.jpg" onload="resize_image(this, 440);">


enige probleem nog, als ik deze code aan ubb.php toevoeg is alsnog me layout naar de klote (lettertypes worde anders enzow...) ksnap er zelf ook niks van. maar goed. de java-code werkt in ieder geval en ik kloot wel ff verder. in ieder geval bedankt!


Fire
Usericon van Fire
Posted 24-01-2005 18:29 by Fire (Bestuurslid stichting) Wijzig reactieProfiel van FireQuote dit berichthttp://www.gratix.nl

quote:
Op 24 januari 2005 16:09 schreef Snaack het volgende:
dan gaat het alsnog niet snel werken

Edit: je moet dan vanuit de client iets op de server gaan doen, dus tijdens het opvragen van de paginá het resultaat per image naar een php-script in een nul-frame o.i.d. submitten en de output daarvan weer runtime op je pagina verwerken.

Het kan wel, maar je moet het niet doen

Gewoon geen image-size opgeven. Dan zoekt de browser het zelf uit!
Waarom niet gewoon met CURL de http heading opvragen



Danas
Usericon van Danas
Posted 24-01-2005 18:35 by Danas Wijzig reactieProfiel van DanasQuote dit bericht

gefixt met

//dit in de head
<script>
function resize_image(img, maxwidth)
{
var oldwidth = img.width;
var oldheight = img.height;

if (oldwidth > maxwidth)
{
img.width = maxwidth;
img.height = oldheight / (oldwidth / maxwidth);
}
else
{
}
}
</script>

en dit in ubb.php

<?
function foto ($url,$titel){
$foto = "<a href="$url" target="_blank"><img src="$url" alt="$titel" border="0" onload="resize_image(this, 440);" onerror="this.src='images/error_plaatje.gif';"/></a>";
return $foto;
}


function UBB($waarde) {
$waarde = preg_replace("/[ img](S+?)[/img]/e","foto('\1','\1')", $waarde);


nu nog ff een popup erop zette als de pic verkleind wordt. op de een of andere manier wil ik er dus toch via php achter komen of ie te breed is of niet zodat ik iets kan gebruiken al

<?
if ($plaatje = $tebreed) {
<a href"popup"><img blablabla></a>
}
else
{
<img blablabla>
}
?>


[Dit bericht is gewijzigd door Danas op 24-01-2005 18:40]


Danas
Usericon van Danas
Posted 24-01-2005 18:56 by Danas Wijzig reactieProfiel van DanasQuote dit bericht

bijkomend probleem, voor de popup heb ik de originele breedte en hoogte nodig... kmoet ze dus toch weten...


Fire: wat bedoel je met CURL?


altx
Iron Maiden's gonna get you
Usericon van altx
Posted 24-01-2005 19:23 by altx Wijzig reactieProfiel van altxQuote dit bericht

quote:
Op 24 januari 2005 18:56 schreef Danas het volgende:
bijkomend probleem, voor de popup heb ik de originele breedte en hoogte nodig... kmoet ze dus toch weten...
(...)


Da's op zich wel te bouwen. Ik ga zo nog wel ff wat klooien... Maar eerst ff wat eten.


Scream for mercy // He laughs as he's watching you bleed // Killer behind you // His blood lust defies all his needs // Look out I'm coming for you!


Fire
Usericon van Fire
Posted 24-01-2005 19:39 by Fire (Bestuurslid stichting) Wijzig reactieProfiel van FireQuote dit berichthttp://www.gratix.nl

quote:
Op 24 januari 2005 18:56 schreef Danas het volgende:
Fire: wat bedoel je met CURL?

http://nl.php.net/curl

btw Pop-ups is zo 2001



Snaack
Usericon van Snaack
Posted 24-01-2005 19:55 by Snaack Wijzig reactieProfiel van SnaackQuote dit bericht

quote:
Op 24 januari 2005 15:15 schreef ik o.a. het volgende:

In dit draadje kan je dat soort vragen trouwens beter kwijt:

http://forum.zwaremetalen.com/forum_topic/1520657




*kuch*



altx
Iron Maiden's gonna get you
Usericon van altx
Posted 24-01-2005 20:00 by altx Wijzig reactieProfiel van altxQuote dit bericht

ff heel snel in elkaar gedraaid (valt dus nog wel wat aan te verbeteren...):

<HTML>
<SCRIPT type=text/javascript>

function resize_image(img, maxwidth, maxheight)
{
img.oldwidth = img.width;
img.oldheight = img.height;

if (img.oldwidth > maxwidth || img.oldheight > maxheight)
{
if ((img.oldwidth / maxwidth) > (img.oldheight / maxheight))
{
img.width = maxwidth;
img.height = img.oldheight / (img.oldwidth / maxwidth);
}
else
{
img.height = maxheight;
img.width = img.oldwidth / (img.oldheight / maxheight);
}
}
}

function popup(img)
{
if (img.oldwidth != null && img.oldheight != null)
{
if (img.width < img.oldwidth || img.height < img.oldheight)
{
void window.open(img.src, "", "resizable=no,scrollbars=no,width=" + img.oldwidth + ",height=" + img.oldheight);
}
}
}
</SCRIPT>

<BODY>
<IMG border=0 src="http://members.lycos.nl/altx/tmp/xander_zm-fest3.JPG"
onload="resize_image(this, 320, 200);" onclick="popup(this);">
</BODY>
</HTML>




Merk op hoe ik de oude hoogte en breedte nu niet in een variabele stop, maar opgeef als property van het betreffende Image-object, zodat ik bij het klikken op het plaatje deze weer terug kan halen. Op deze manier gaat het namelijk ook goed met meer dan 1 plaatje.


Scream for mercy // He laughs as he's watching you bleed // Killer behind you // His blood lust defies all his needs // Look out I'm coming for you!


Index / Administration Active topics Nieuw topic Post reply
http://www.zwaremetalen.com
Powered by ZwareMetalen [PHP] Forum Versie 2.15.0
Optimized for Internet Explorer 6.0 SP2+ / Opera 8+ / Firefox 1+
© 2001 - 2024 Stichting ZwareMetalen