2

私は何時間も研究してきましたが、Symfony2 内で効果的な画像操作を行う方法を理解できません。Liip Imagine バンドルは最適な方法のようですが、開発中に適切に機能させることができないようです。

私が欲しいもの:

  • アップロード時に、できれば%ベースの画像サイズを作成します(画像が巨大な場合、キャッシュ中にその人が待機することを望まないため、画像のリクエストを待機することをお勧めします)
  • 画像に透かしを作成する
  • 画像、サイズ変更、DI などからメタを取得します。

私は以下を見てきました:

構成:

liip_imagine:
resolvers:
   default:
      web_path: ~

filter_sets:
    cache: ~
    my_thumb:
        quality: 75
        filters:
            thumbnail: { size: [120, 90], mode: outbound }

試行された小枝:

img src="{{ asset(file.webPath) | imagine_filter('my_thumb') }}"

編集!!

そこで、次のコードを使用して、貼り付けた上記の投稿からアップロードしようとしました。

   private function writeThumbnail($document, $filter) {
    $path = $document->getWebPath();                                // domain relative path to full sized image
    $tpath = $document->getRootDir().$document->getThumbPath();     // absolute path of saved thumbnail

    $container = $this->container;                                  // the DI container
    $dataManager = $container->get('liip_imagine.data.manager');    // the data manager service
    $filterManager = $container->get('liip_imagine.filter.manager');// the filter manager service

    $image = $dataManager->find($filter, $path);                    // find the image and determine its type
    $response = $filterManager->get($this->getRequest(), $filter, $image, $path); // run the filter 
    $thumb = $response->getContent();                               // get the image from the response

    $f = fopen($tpath, 'w');                                        // create thumbnail file
    fwrite($f, $thumb);                                             // write the thumbnail
    fclose($f);                                                     // close the file
}

そして今、この行$image = $dataManager->find($filter, $path)は次のエラーをスローしています:

画像のアップロード/ファイル/pic_05052015_827_c6d4b.jpg の MIME タイプは、image/xxx got inode/x-empty である必要があります。

私はこの深いイメージのいくつかに少し戸惑っています.

4

0 に答える 0