Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Höhe eines lokalen Bildes auslesen!

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Höhe eines lokalen Bildes auslesen!

    Morgen zusammen!

    Ich steh vor nem kleinem Problem in Sachen Javascript...

    Und zwar hab ich ein Bilder Upload Script, das lokale Bilder in verschiedene Ordner (je nach gewünschter größe) auf den Server uploadet und die größe neu berechnet - was Bilder Upload Tools halt so machen ^^

    Mein Problem ist jetzt das das Bild eine gewisse höhe nicht überschreiten darf.

    Es muss doch eine Möglichkeit geben die Höhe und Breite eines Bildes Pixelgenau auszulesen OHNE es schon hochgeladen zu haben...

    So sieht das bis jetzt aus:

    Hier erstmal das Formular "uplo":


    Code:
    <form enctype="multipart/form-data" action="<?php echo $home; ?>/regietool/auswahl.php?<?=SID?>" method="post" name="uplo">
    <table width="600" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td valign="top"><table border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td valign="top" align="center" class="dick_u">Uploadsystem für Bilder</td>
      </tr>
      <tr>
        <td valign="top" height="50"></td>
      </tr>
      <tr>
        <td valign="top"><table border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td valign="top" class="klein" align="center">Erlaubte Bildformate sind .jpg und .gif</td>
      </tr>
      <tr>
        <td valign="top" height="25"><input name="seite" type="hidden" value="<?php echo $seite; ?>"><input name="statusrubrik" type="hidden" value=""><input name="welcher" type="hidden" value="<?php echo $welcher; ?>"></td>
      </tr>
      <tr>
        <td valign="top" align="center"><input type="file" name="probe" size="55" onChange="javascript:vorladen();"></td>
      </tr>
      <tr>
        <td valign="top" align="center"><input type="button" name="ok" value="Speichern" class="button1" onClick="abschicken();"></td>
      </tr>
    in der Funktion "vorladen()" wird die Datei ausgelesen und Schon einmal als Thumbnail angezeigt... hier irrellevant deswegen lass ich den Teil weg... des weitern werden in der Funktion "vorladen" 2 Alerts ausgegeben, einmal den Pfad und die andere Ausgabe soll eben die Höhe sein... das ganze sieht so aus:

    Funktion "vorladen()"

    Code:
    function vorladen()
    {
    var hole = document.uplo.probe.value;
    var height = document.uplo.probe.height;
    document.uplo.vorschau.src = hole;
    alert(height);
    alert(hole);
    }
    in der variable "height" bekomm ich aber immer nur zahlen so um 60659536, egal wie hoch das bild wirklich is... versuche ichs mit "width" bekomme ich 0...

    Woran kann es liegen? oder is der Ansatz schon falsch..
    Mir gehts nur drum das ich die Bildhöhe in ne Variable schreiben kann... alles andere wäre dann nebensächlich...

  • #2
    Re: Höhe eines lokalen Bildes auslesen!

    Zitat von Oliabt
    Es muss doch eine Möglichkeit geben die Höhe und Breite eines Bildes Pixelgenau auszulesen OHNE es schon hochgeladen zu haben...
    Ob es deiner Meinung nach muss oder nicht, es existiert keine Möglichkeit, ausser im IE.

    Kommentar


    • #3
      Wirklich nicht?

      Wie sieht die möglichkeit im IE aus? Wir arbeiten im IE, und nur wir müssen hochladen... insofern langts fürn IE...

      Kommentar


      • #4
        Zitat von Oliabt
        Wirklich nicht?
        Wirklich nicht.

        Zitat von Oliabt
        Wie sieht die möglichkeit im IE aus? Wir arbeiten im IE, und nur wir müssen hochladen... insofern langts fürn IE...
        Code:
        <script type="text/javascript">
        var obj = new Image();
        obj.onload = function() {
          alert(obj.width+','+obj.height);
        }
        obj.src='1.gif';
        </script>

        Kommentar


        • #5
          Also bin grad dazu gekommen das ganze zu testen und es funktioniert... Musste es ein wenig umbauen, hier kurz der code:

          Code:
          function vorladen()
          {
          var hole = document.uplo.probe.value;
          var obj = new Image(); 
          obj.src = hole;
          alert(obj.width+','+obj.height); 
          if (obj.height*3 >> "363")
          {
          alert("Das Bild ist zu Hoch");
          }
          document.uplo.vorschau.src = hole;
          }
          läuft einwandfrei...

          Danke!!!

          Kommentar


          • #6
            Nicht ganz, der onload Event ist wichtig, da du die Werte erst auslesen kannst, wenn das Bild komplett geladen ist (bis jetzt hattest du nur Glück)

            Code:
            function vorladen()
            {
              var hole = document.uplo.probe.value;
              var obj = new Image();
              obj.onload = function {
                 if (obj.height*3 >> 363) // >> ist der Shift-Operator, willst du das wirklich?
                {
                  alert("Das Bild ist zu Hoch");
                } else
                {
                  document.uplo.vorschau.src = hole;
                }
              }
              obj.src = hole;
            }

            Kommentar

            Lädt...
            X