Využij akce až 80 % zdarma při nákupu e-learningu. Více informací.
Pouze tento týden sleva až 80 % na e-learning týkající se Pythonu
discount week 80
Avatar
Vaclav Hrouda:29.4.2018 17:48

Můj cíl je nahrát do jedné složky obrázek v maximální velikosti 1024x768 a jeho náhled o max velikosti 400x400. Obě metody níže dostávají stejný obrázek a mají ho za úkol nahrát a zmenšit na požadovanou velikost. První fotka se nahraje a zmenší bez problému, ale druhá už se nenahraje. Budu rád za jakoukoli radu. Děkuji.

$spravceFotek->nahrajObrazek($obrazek, 'tn_', $poradi, 400, 400, $slozka);

$spravceFotek->nahrajObrazek($obrazek, 'big_', $poradi, 1024, 768, $slozka);

Tělo funkce:

public function nahrajObrazek($obrazek, $prefix, $poradi, $width, $height, $slozka)
      {
        $image = new Bulletproof\Image($obrazek);

        if ($image["pictures"]) {
          $image->setLocation('image/' . $slozka)
          ->setName($prefix . $slozka . $poradi)
          ->setSize(0, 2000000);

          $upload = $image->upload();

          $velikost = $this->getImageSizeKeepAspectRatio('image/' . $slozka . '/' . $prefix . $slozka . $poradi . '.' . $image->getMime(), $width, $height);


          if($upload){
            $resize = Bulletproof\resize(
              $image->getFullPath(),
              $image->getMime(),
              $image->getWidth(),
              $image->getHeight(),
              $velikost['width'],
              $velikost['height']
            );
          }
      }
    }

https://github.com/…/bulletproof

 
Odpovědět
29.4.2018 17:48
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:2.5.2018 16:11

Aspon, ze jsi dal link.

Nepochopil jsi, co ten kod dela.
Uploaduje obrazek. Pak jej zmensuje.
Nemuzes 2x uploadovat obrazek!!! ten soubor se z temp/ adresare po ukonceni uploadu smaze.
Radek 358, viz link dole na git, moveUploadedFile
Z dokumentace funkce (php.net/move­UploadedFile) zjistis, ze z puvodniho umisteni (temp/xyz) ho presunuje pryc do tvujweb/image/neco. Takze tu funkci nelze volat 2x po sobe.

Tak si tam udelej vlastni funkci, kde bude tentyz kod, plus podruhe

$velikost = $this->getImageSizeKeepAspectRatio('image/' . $slozka . '/' . $prefix . $slozka . $poradi . '.' . $image->getMime(), $width, $height); // prepocita rozmery

  $resize = Bulletproof\resize( // zmensi
    $image->getFullPath(),
    $image->getMime(),
    $image->getWidth(),
    $image->getHeight(),
    $velikost['width'],
    $velikost['height']
https://github.com/samayo/bulletproof/blob/master/src/utils/func.image-resize.php

imagejpeg se da vyhledat v dokumentaci
php.net/imagejpeg
bool imagejpeg ( resource $image [, mixed $to [, int $quality ]] )
imagejpeg($im, 'simpletext.jpg'); // idealne v examplu, prvni je obrazkova_dat, druhy cesta

Cili, musis te druhe funkci resize dat jen spravnou cestu. Nevim, ktera to bude. Bud
$image->getFullPath(), nebo
'image/' . $slozka . '/' . $prefix . $slozka . $poradi . '.' . $image->getMime()

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět
2.5.2018 16:11
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.