Image a automatické otáčení obrázku

Stormwinter
Člen | 11
+
0
-

Ahoj, mám takový problém, když uploaduju image a má výšku větší neš šířku, tak mi to obrázek automaticky otočí naležato.

v presenteru mám toto:

public function saveNewPhotos($id, $file, $dir){
        if ($file->isImage() and $file->isOk()) {
                    // oddělení přípony pro účel změnit název souboru na co chceš se zachováním přípony
                    $file_ext = strtolower(mb_substr($file->getSanitizedName(), strrpos($file->getSanitizedName(), ".")));
                    // vygenerování náhodného řetězce znaků, můžeš použít i \Nette\Strings::random()
                    $file_name = Random::generate() . $file_ext;
                    // přesunutí souboru z temp složky
                    $file->move($dir . $file_name);

                    //vytvoření miniatury
                    $image = Image::fromFile($dir . $file_name);
                    if ($image->getHeight() > 120) {
                        $image->resize(NULL, 120);
                    }
                    $image->sharpen();
                    $image->save($dir.'thumbs/' . $file_name);

                    $query = array('file' => $file_name, 'news_id' => $id);

					// zápis jmen obrázků do DB a přiřazení k ID novinky
                    $this->manager->saveNewImage($query);

                    return TRUE;
         }
    }

Můžete mi prosím poradit, co dělám kde špatně? Díky

froggy
Člen | 17
+
+1
-

Ahoj, nejspíš bude orientace obrázku uložena v EXIF informacích.

function rotate_image($file, $image) {
    $ex = @exif_read_data($file, 'EXIF');
    if(!empty($ex['Orientation'])) {
        switch($ex['Orientation']) {
            case 8:
                $image->rotate(90, 0);
                break;
            case 3:
                $image->rotate(180, 0);
                break;
            case 6:
                $image->rotate(-90, 0);
                break;
        }
    }
}

Tedy za řádkem $image = Image::fromFile($dir . $file_name); by mělo být provedené natočení – rotate_image($dir . $file_name, $image);

Stormwinter
Člen | 11
+
0
-

Výborně, pomohlo. Díky