tutorials.de Buch-Aktion 05/2012
Seite 2 von 7 ErsteErste 12345 ... LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
91
ZUGRIFFE
2363
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #16
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Was willst du denn mit dem Ausrufezeichen erreichen? Ansonsten: erster Wert im Array: das Zeichen, zweiter Wert im Array: 0 => Kleinbuchstabe, 1 => Großbuchstabe, 2 => Ziffer
    Alice bedankt sich. 
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  2. #17
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    Zitat Zitat von einfach nur crack Beitrag anzeigen
    Was willst du denn mit dem Ausrufezeichen erreichen?
    Also nehmen wir an der User hat "Bmw50!0Ps" eingegeben.

    Dann soll folgendes passieren:

    B -> Ordner 1 -> B.png
    m -> Ordner 2 -> m.png
    w -> Ordner 2 -> w.png

    5 -> Ordner 1 -> 5.png
    0 -> Ordner 1 -> 0.png
    !0 -> Ordner 2 -> 0.png // Wenn möglich soll das Skript hier erkennen das diese Null (wegen dem Ausrufezeichen davor) ein "kleiner Buchstabe" ist sozusagen.

    P -> Ordner 1 -> P.png
    s -> Ordner 2 -> s.png

    Oder gibt es noch eine andere Möglichkeit das "automatisch" erkannt wird das die "0" aus einem anderen Verzeichnis geladen werden soll?
     

  3. #18
    Avatar von Lime
    Lime Lime ist gerade online frisch fruchtig
    Registriert seit
    Jul 2011
    Beiträge
    371
    Was soll das bringen, Zahlen zu unterscheiden****?
    Du willst doch hoffentlich nicht die Bilder für Zahlen bis 10.000 anfertigen und abspeichern?

    Klein- und Großbuchstaben sind verständlich, aber kleine Zahlen****
    €: wieso zensiert der zwei-, drei- und vierfaches Fragezeichen
    Geändert von Lime (05.02.12 um 21:26 Uhr)
    Alice bedankt sich. 

  4. #19
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Du könntest sagen, dass jede zweite Null oder jede letzte Null als kleine Null dargestellt werden soll, aber wenn es dafür keine Regeln gibt, dann musst du das beispielsweise mit deinem Ausrufezeichen lösen.
    Alice bedankt sich. 
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  5. #20
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    Was das bringen soll?

    Einfaches Beispiel:
    Die Grafiken in Ordner 1 sind Blau.
    Die Grafiken in Ordner 2 sind Rot.

    Und der User soll ja dann entscheiden welche Farbe der Buchstabe oder die Zahl haben soll.

    Kannst du deinen Code nicht um diese Eigenschaft erweitern?
     

  6. #21
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Code PHP:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    $var = 'Bmw500PS';
    $pattern = '/([a-z])|([A-Z])|(![0-9])|([0-9])/';
    if(preg_match_all($pattern, $var, $matches) !== false) {
      $count  = count($matches[0]);
      foreach($matches[0] as $i => $letter) {
        # Kleinbuchstabe
        if(!empty($matches[1][$i])) {
          $result[] = array($letter, 0);
        # Großbuchstabe
        } elseif(!empty($matches[2][$i])) {
          $result[] = array($letter, 1);
        # Ziffer mit Ausrufezeichen davor
        } elseif(!empty($matches[3][$i])) {
          $result[] = array(substr($letter, 1), 2);
        # einfache Ziffer
        } else {
          $result[] = array($letter, 3);
        }
      }
    } else {
      $result = array();
    }
    Alice bedankt sich. 
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  7. #22
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    Super jetzt geht es!

    PHP-Code:
    Array
    (
        [
    0] => Array
            (
                [
    0] => B
                
    [1] => 1
            
    )

        [
    1] => Array
            (
                [
    0] => m
                
    [1] => 0
            
    )

        [
    2] => Array
            (
                [
    0] => w
                
    [1] => 0
            
    )

        [
    3] => Array
            (
                [
    0] => 5
                
    [1] => 2
            
    )

        [
    4] => Array
            (
                [
    0] => 0
                
    [1] => 3
            
    )

        [
    5] => Array
            (
                [
    0] => 0
                
    [1] => 3
            
    )

        [
    6] => Array
            (
                [
    0] => P
                
    [1] => 1
            
    )

        [
    7] => Array
            (
                [
    0] => S
                
    [1] => 1
            
    )


    Danke!

    Jetzt muss ich nur noch herausfinden wie ich die Verzeichnisse damit lenke.
     

  8. #23
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    Hallo, ich hätte da noch eine Frage zu deinem Code.

    Zitat Zitat von einfach nur crack Beitrag anzeigen
    Code PHP:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    $var = 'Bmw500PS';
    $pattern = '/([a-z])|([A-Z])|(![0-9])|([0-9])/';
    if(preg_match_all($pattern, $var, $matches) !== false) {
      $count  = count($matches[0]);
      foreach($matches[0] as $i => $letter) {
        # Kleinbuchstabe
        if(!empty($matches[1][$i])) {
          $result[] = array($letter, 0);
        # Großbuchstabe
        } elseif(!empty($matches[2][$i])) {
          $result[] = array($letter, 1);
        # Ziffer mit Ausrufezeichen davor
        } elseif(!empty($matches[3][$i])) {
          $result[] = array(substr($letter, 1), 2);
        # einfache Ziffer
        } else {
          $result[] = array($letter, 3);
        }
      }
    } else {
      $result = array();
    }
    Ich habe es nun so gemacht das in deinem Code eine neue Variable erstellt wird mit einem Teil-Pfad.

    Beispiel:
    PHP-Code:
    # Kleinbuchstabe
    if(!empty($matches[1][$i])) {
       
    $result[] = array($letter$Teil_Pfad 'arial_font_bold';);


    # Großbuchstabe
    elseif(!empty($matches[2][$i])) {
       
    $result[] = array($letter$Teil_Pfad 'arial_font_normal';);

    Wie kann ich denn jetzt "$Teil_Pfad" richtig verwenden? Mit $result geht es nicht.
     

  9. #24
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Was willst du denn damit erreichen? Sollen die Zeichenkette konkatiniert werden oder soll $Teil_Pfad der Schlüssel von den Werten sein?
    Alice bedankt sich. 
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  10. #25
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    Ich raff das ganze einfach überhaupt nicht. Ich versuche es mal zu erklären in einfachen Worten.

    1. User gibt etwas in ein Formular ein und schickt es ab
    2. Das Skript muss nun die Eingabe des User Zeichen für Zeichen einer Schriftart zuordnen
    3. Die Grafiken werden in einer Schleife erstellt und dann in eine größere Grafik gespeichert
    4. Fertig

    In meinem "Anfänger-Skript" habe ich so etwas wie eine "Verzeichniss-Ebene" erstellt.

    PHP-Code:
    Die Variable "$pfad_fontwird bisher durch eine ganz einfach IF-Abfrage ausgesucht.

    Sind mehr als 5 Zeichen in der Variable dann "Arial_Font_Normal" sonst "Arial_Font_Bold".

    $Pfad_1 './';
    $Pfad_2 'images/';
    $Pfad_3 'sig';
    $Pfad_4 $pfad_font;
    $format '.png'
    Ich möchte nun das Skript erweitern so das jedes Zeichen in der Variable seinen eigenen Pfad bekommt.

    Später im Skript wenn die Grafiken geladen werden (imagecreate...) sollen die Grafiken individuell (nicht starr wie jetzt) geladen werden können.

    Bei Bedarf stell ich mal einen 1:1 Code zur Verfügung.
     

  11. #26
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Um ehrlich zu sein: ein klarer Fall für Klassen. Aber das mach' ich morgen.
    Alice bedankt sich. 
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  12. #27
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    Klassen? Ist das wieder etwas neues?

    Hier mal das Skript aber sehr stark vereinfacht, da es sonst viel zu unübersichtlich ist.

    PHP-Code:
    // ### Variable usw. ### //
       
    $U_Eingabe "BMW500PX";
       
    $U_Eingabe htmlspecialchars($U_EingabeENT_QUOTES);
       
    $U_Eingabe htmlspecialchars($U_Eingabe);

    // ### Grundeinstellungen ### //
       
    $format '.png';

    // ### Prüfen ob leer ### //
       
    if (strlen($U_Eingabe) == '0') {
          unset(
    $U_Eingabe);
          echo 
    '<div style="text-align:center; font-weight:bold;">Error</div><br />';
       } 

    // ### Zeichen zählen ### //
       
    $Zeahlen strlen($U_Eingabe);

    // ### Schrift auswählen (Starr) ### //
       
    if ($Zeahlen 5) {
           
    $Schrift 'Arial_Font_Normal';
       }
           else
       {
           
    $Schrift 'Arial_Font_Bold';
       }


    // ### Verzeichniss-Ebene ### //
       
    $Pfad_1 './';
       
    $Pfad_2 'images/';
       
    $Pfad_3 'sig';
       
    $Pfad_4 $Schrift;

    // ### Verzeichniss Zusammenfassem ### //
       
    $Pfad_complete $Pfad_1.$Pfad_2.$Pfad_3.$Schrift;

    // ### Grafiken erstellen ### //
       
    for($j=0$x strlen($U_Eingabe); $j $x; ++$j){ 
          if(
    file_exists($Pfad_complete.$U_Eingabe[$j].$format){
             
    $size getimagesize($Pfad_complete.$U_Eingabe[$j].$format);
             
    $im[] = array('img' => imagecreatefrompng($Pfad_complete.$U_Eingabe[$j].$format), 'sizex' => $size[0],); 
             
    $total_size_x +=$size[0]; 
          } 
       } 

    // ### abschluss ### //
       
    $image imagecreatetruecolor($total_size_x$size[1]);
       
    $ac_x  0;
                foreach(
    $im as $grafik){ 
                       
    ImageCopyResampled($imend$grafik['img'], $ac_x000imagesx($grafik['img']), imagesy($grafik['img']), imagesx($grafik['img']), imagesy($grafik['img']));
                       
    $ac_x+= $grafik['sizex']; 
                }

       
    imagepng($image); 
     

  13. #28
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Alice bedankt sich. 
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  14. #29
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    Das ist mir zu hoch.

    Vielleicht bin ich aber auch einfach zu müde.
     

  15. #30
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.961
    Meine Lösung würde jetzt so aussehen:
    Code PHP:
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    
    <?php
      class FontException extends Exception {}
      
      class Font {
        private static $fonts = array();
        private $name      = '';
        private $weight    = '';
        private $directory = '';
        private $letters   = array();
        public  $format    = 'png';
        
        public static function get($name, $weight = null, $directory = null) {
          if($weight === null) {
            $weight = 'normal';
          }
          
          if(self::$fonts === array()) {
            if($directory === null) {
              throw new FontException('directory required');
            }
            
            self::$fonts[] = new Font($name, $weight, $directory);
            return end(self::$fonts);
          } else {
            foreach(self::$fonts as $font) {
              if(($font->name === $name) && ($font->weight === $weight)) {
                return $font;
              }
            }
            
            if($directory === null) {
              throw new FontException('directory required');
            }
            
            self::$fonts[] = new Font($name, $weight, $directory);
            return end(self::$fonts);
          }
        }
        
        private function __construct($name, $weight, $directory) {
          if(!is_string($name) || !is_string($name) || !is_string($directory) || empty($name) || empty($weight) || empty($directory)) {
            throw new FontException('invalid arguments');
          } elseif(!file_exists($directory) || !is_dir($directory)) {
            throw new FontException('directory >>' . $directory . '<< does not exist');
          }
          
          $this->name      = strtolower($name);
          $this->weight    = strtolower($weight);
          $this->directory = $directory;
        }
        
        public function letter($letter) {
          if(isset($this->letters[$letter])) {
            return $this->letters[$letter];
          } elseif(file_exists($this->__toString() . $letter . '.' . $this->format) || ($size = getimagesize($this->__toString() . $letter . '.' . $this->format))) {
            switch($this->format) {
              case 'png':
                $this->letters[$letter] = array(
                  imagecreatefrompng($this->__toString() . $letter . '.' . $this->format),
                  $size,
                );
                break;
              case 'jpeg':
              case 'jpg':
                $this->letters[$letter] = array(
                  imagecreatefromjpeg($this->__toString() . $letter . '.' . $this->format),
                  $size,
                );
                break;
              case 'gif':
                $this->letters[$letter] = array(
                  imagecreatefromgif($this->__toString() . $letter . '.' . $this->format),
                  $size,
                );
                break;
              default:
                throw new FontException('invalid image format');
            }
          } else {
            throw new FontException('could not find the file for the character "' . $letter . '"');
          }
        }
        
        public function __toString() {
          return $this->directory . '/' . ucfirst($this->name) . '_Font_' . ucfirst($this->weight);
        }
      }
      
      
      if(isset($_POST['images']['submit'])) {
        try {
          if(($length = strlen($input = trim($_POST['images']['text']))) === 0) {
            throw new Exception('invalid input');
          }
          
          if($length < 5) {
            $font = Font::get('arial', null,   './images/sig');
          } else {
            $font = Font::get('arial', 'bold', './images/sig');
          }
          
          # set format of the character files
          $font->format = 'png';
          
          $letters = str_split($input);
          $size    = array(0, 0);
          
          foreach($letters as $i => $letter) {
            $letters[$i] = $letter = $font->letter($letter);
            $size[0]    += $letter[0][0];
            $size[1]     = ($letter[0][1] > $size[1]) ? $letter[0][1] : $size[1];
          }
          
          $image      = imagecreatetruecolor($size[0], $size[1]);
          $position_x = 0;
          $imend; # hast du irgendwo definiert
          
          foreach($letters as $letter) {
            imagecopyresampled($imend, $letter[0], $position_x, 0, 0, 0, $letter[0][0], $letter[0][1], $letter[0][0], $letter[0][1]);
            $position_x += $letter[0][0];
          }
          
          header('Content-Type: image/png');
          imagepng($image);
        } catch(Exception $e) {
    ?>
    <!DOCTYPE html>
    <html>
    <head>
      <title>Fehler aufgetreten</title>
    </head>
    <body>
      <div style="border:3px solid red"><?php echo $e->getMessage(); ?></div>
    </body>
    <?php
        }
      } else {
    ?>
    <!DOCTYPE html>
    <html>
    <head>
      <title>Bild erstellen</title>
    </head>
    <body>
      <form id="images" method="post" action="">
        <label for="images-text"><input id="images-text" name="images[text]" type="text" /><br />
        <input id="images-submit" name="images[submit]" type="submit" value="erstellen" />
      </form>
    </body>
    <?php
      }
    ?>
    Alice bedankt sich. 
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

Ähnliche Themen

  1. Grafiken laden lange, trotz in Resources enthalten
    Von i123 im Forum .NET Grafik und Sound
    Antworten: 7
    Letzter Beitrag: 12.05.10, 18:56
  2. Grafiken laden
    Von Len-ni im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 16.01.08, 19:30
  3. Grafiken aus Cache laden....
    Von bernhardp im Forum HTML & XHTML
    Antworten: 1
    Letzter Beitrag: 21.06.05, 11:12
  4. Grafiken im Hintergrund laden
    Von NoGi im Forum HTML & XHTML
    Antworten: 1
    Letzter Beitrag: 23.04.03, 11:44
  5. Bei mouse over 2 Grafiken laden...
    Von Oxygen im Forum Javascript & Ajax
    Antworten: 13
    Letzter Beitrag: 26.02.02, 13:55