ホームページ バックエンド開発 PHPチュートリアル php下尝试使用GraphicsMagick的缩略图功能_php技巧

php下尝试使用GraphicsMagick的缩略图功能_php技巧

May 17, 2016 am 09:22 AM
サムネイル

常用的图片处理工具有GDImageMagickGraphicsMagick等等。GD就是个阿斗,略过不提;ImageMagick是目前最流行的图片处理工具,它的功能非常丰富;GraphicsMagick的功能略逊于ImageMagick,但是它的效率更强悍,就好比Apache和Nginx一样,一个功能更强,一个效率更胜。

现在更看重效率,所以本文就以GraphicsMagick为例来说说:

对于PHPer来说,有两种使用GraphicsMagick的方式:

1:使用PECL Gmagick扩展。
2:使用GraphicsMagick命令行。

PECL扩展的方式我并不喜欢,一来PECL代码Bug多多,二来PECL扩展的实现,代码写起来很罗嗦:比如缩放一个GIF动画图片,如果你用命令行的方式,一句话就搞定,而用PECL扩展的话,还得先算动画有几帧,再循环处理,很麻烦。所以说我更倾向于使用命令行的方式,虽然命令行操作听起来很“重”,但如果建立若干台图片服务器,通过Gearman连接起来,其实很是很有弹性的。

下面我们就以GraphicsMagick为例,采用命令行的方式来看看如何使用缩略图功能:

先上一个原始图片(input.jpg:160x120),以后的各个例子都会用到它:

php下尝试使用GraphicsMagick的缩略图功能_php技巧

BTW:列位看官现在可以咽口水了。

缩略图1

gm convert input.jpg -thumbnail '100x100' output_1.jpg

php下尝试使用GraphicsMagick的缩略图功能_php技巧

实际生成的图片大小是:100x75,也就是说说按此命令,会保持图片比例不变生成缩略图。这样很不错,但是有一个潜在的问题:我们不能简单明了的知道图片的最终大小,结果是前端显示的时候,无法设置img标签的width和height属性,如果我没记错的话,一般是推荐设定width和height属性的,否则浏览器渲染起来可能会稍稍慢一点。

缩略图2

gm convert input.jpg -thumbnail '100x100!' output_2.jpg

php下尝试使用GraphicsMagick的缩略图功能_php技巧

这次
实际生成的图片大小按定义来,但图片变形了,有时候这是不能接受的。

缩略图3


gm convert input.jpg -thumbnail '100x100^' \
-gravity center -extent 100x100 output_3.jpg

php下尝试使用GraphicsMagick的缩略图功能_php技巧

这次不仅保证了大小,还保证了比例。不过图片经过了裁剪。

缩略图4

gm convert input.jpg -thumbnail '100x100' \
-background gray -gravity center -extent 100x100 output_4.jpg

php下尝试使用GraphicsMagick的缩略图功能_php技巧

这次不仅保证了大小,还保证了比例,同时没有对图片进行任何裁剪,多余的部分按指定颜色进行填充。

缩略图5

gm convert input.jpg -thumbnail '10000@' \
-background gray -gravity center -extent 100x100 output_5.jpg

php下尝试使用GraphicsMagick的缩略图功能_php技巧

这次保证了大小和比例,其中的10000就是100x100的乘积,同时在填充和裁剪之间做了一个平衡。


明白了以上几个例子,缩略图基本就能通吃了,肯定有一种会适合你的需求。GraphicsMagick的资料非常少,但好消息是GraphicsMagick和ImageMagick的用法基本兼容,所以你可以通过
ImageMagick的资料来套用。

补充:如果想让用户手动裁剪头片的话,imgAreaSelect是个好选择。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Win11 でタスクバーのサムネイル プレビューを無効にする方法は? マウスを移動してタスクバー アイコンのサムネイル表示テクニックをオフにする Win11 でタスクバーのサムネイル プレビューを無効にする方法は? マウスを移動してタスクバー アイコンのサムネイル表示テクニックをオフにする Feb 29, 2024 pm 03:20 PM

この記事では、Win11システムでタスクバーアイコンをマウスで移動したときに表示されるサムネイル機能をオフにする方法を紹介します。この機能はデフォルトでオンになっており、ユーザーがタスクバー上のアプリケーション アイコンの上にマウス ポインタを置くと、アプリケーションの現在のウィンドウのサムネイルが表示されます。ただし、一部のユーザーは、この機能があまり役に立たない、またはエクスペリエンスに悪影響を与えると感じ、オフにしたい場合があります。タスクバーのサムネイルは楽しい場合もありますが、気が散ったり煩わしい場合もあります。この領域にマウスを移動する頻度を考えると、重要なウィンドウを誤って閉じてしまったことが何度かある可能性があります。もう 1 つの欠点は、より多くのシステム リソースを使用することです。そのため、リソース効率を高める方法を探している場合は、それを無効にする方法を説明します。しかし

Windows 11 22H2 でフォルダーのサムネイルをカスタマイズする方法 Windows 11 22H2 でフォルダーのサムネイルをカスタマイズする方法 Apr 30, 2023 pm 04:52 PM

Windows 1122H2 は、Windows 11 の最初の機能アップデートであり、大量の新機能と切望されている改善点をもたらします。改善点の 1 つは、フォルダー内のファイルのフォルダー サムネイルをプレビューできる機能です。 Windows 11 のフォルダーのサムネイルの外観が気に入らない場合は、次の方法で変更できます。 Windows 11 のフォルダー サムネイル用のカスタム アイコンのセット (Reddit の LEXX911 提供)。プレビューを拡大したり、フォルダー アイコンのスタイルを変更したりできます。個々のファイルのプレビューを扱う必要はありますが (たとえば、Windows 7 では、フォルダーのサムネイルに複数の画像を同時に表示できます)、プレビューをより大きくしてより便利にすることができます。重要なヒント:

Vscode でサムネイルを表示する方法_Vscode でサムネイルを表示する方法 Vscode でサムネイルを表示する方法_Vscode でサムネイルを表示する方法 Apr 02, 2024 pm 02:43 PM

1. まずVisual Studio Codeを入力し、左上の[ファイル]をクリックします。 2. [環境設定]をクリックします。 3. [設定]項目をクリックします。 4. [テキストエディタ-サムネイル]をクリックします。 5. 最後に、サムネイル項目の[サムネイルを表示するかどうか制御]をオンにします。

JavaScriptを使用した自動サムネイル生成 JavaScriptを使用した自動サムネイル生成 Jun 16, 2023 pm 12:51 PM

インターネットの発展に伴い、Web ページに写真は欠かせないものになりました。しかし、画像の数が増えると、画像の読み込み速度が非常に重要な問題になります。この問題を解決するために、多くの Web サイトではサムネイルを使用して画像を表示していますが、サムネイルを生成するには専門的な画像処理ツールを使用する必要があり、専門家以外の人にとっては非常に面倒です。その場合、JavaScript を使用してサムネイルの自動生成を実現するのが良い選択になります。 JavaSの使い方

USBドライブ上のサムネイルを表示する方法 USBドライブ上のサムネイルを表示する方法 Feb 12, 2024 pm 08:36 PM

私は、重要なときにコンピューターのちょっとした問題が非常に困るというお客様によく遭遇します。まとめると以下のようなものがあります。ファイルを USB フラッシュ ドライブにコピーできない理由は、USB フラッシュ ドライブのパーティション形式が NTFS ではなく FAT32 である可能性があります。大きなファイルをコピーできるように、USB フラッシュ ドライブのパーティション形式を NTFS に変更してみてください。次に、画像はサムネイルとして表示されないため、画像を 1 つずつクリックして見つける必要があります。 3 番目のタイプは、ページが突然大きくなったり、小さくなったりすることです。これら 3 つの状況が分からない場合でも、いくつかの簡単な操作で解決できます。 1. U ディスクのパーティションを NTFS に変更します 新しく購入した U ディスクのデフォルトのパーティション形式は通常 FAT32 であり、通常の状況では問題なく使用できます。ただし、4G を超えるファイルをコピーする必要がある場合、コピーできないプロンプトが表示され、使用するのに少し苦労します。のために

PHPでサムネイルを生成する手順の詳細な説明 PHPでサムネイルを生成する手順の詳細な説明 Sep 13, 2023 am 08:40 AM

PHP でサムネイルを生成する手順の詳細な説明、具体的なコード例が必要です。インターネットが急速に発展している今日の時代では、写真は Web ページに不可欠な部分ですが、高解像度の写真は多くの帯域幅を占有するだけでなく、ユーザーの Web ページの読み込み速度にも影響します。したがって、多くの場合、画像サイズとファイル サイズを削減するために、元の画像からサムネイルを生成する必要があります。人気のあるサーバー側スクリプト言語として、PHP はサムネイルの生成に使用できる豊富な画像処理機能を提供します。 PHPでサムネイルを生成する手順を詳しく紹介します。

Powerpoint プレゼンテーションに表を挿入する方法 Powerpoint プレゼンテーションに表を挿入する方法 Apr 13, 2023 pm 10:37 PM

PowerPoint プレゼンテーションの表は、プレゼンテーション時にデータを構造化された形式で表示するのに役立ちます。表に示されている数字は、視聴者により良い影響を与えます。 Microsoft Powerpoint には、プレゼンテーションに表を追加するいくつかの方法があります。新しいテーブルを追加するか、Excel や Word などの別のアプリケーションの既存のテーブルからコピーするかを選択できます。方法 1: グリッド上の行と列を選択して表を挿入します。 ステップ 1: PowerPoint のサムネイルで、マスター スライドを右クリックし、[新しいスライド] を選択します。ステップ 2: [挿入] に移動し、[テーブル] をクリックします。ステップ 3: ドロップダウン メニューから、テーブルに必要な行と列の合計数を選択します。知らせ

Vue で画像のスクロールとサムネイル プレビューを実装するにはどうすればよいですか? Vue で画像のスクロールとサムネイル プレビューを実装するにはどうすればよいですか? Aug 18, 2023 pm 01:51 PM

Vue で画像のスクロールとサムネイル プレビューを実装するにはどうすればよいですか? Vue プロジェクトでは、多くの場合、多数の画像を表示する必要があるため、ユーザーがこれらの画像を簡単に参照してプレビューできることを望んでいます。この記事では、Vue コンポーネントを使用して画像のスクロール機能やサムネイル プレビュー機能を実装する方法を紹介します。まず、画像のスクロールとサムネイル プレビューを容易にするために、適切な Vue ライブラリをインストールして導入する必要があります。この例では、vue-awesome-swiper と vue-image-preview の 2 つのライブラリを使用して実装します。

See all articles