You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
2020.1.8【PHP】Docker PHP7.4系でgdをインストールしてimagecreatefromjpegを使う フォトスタジオ案件で画像を回転させるときにimagecreatefromjpegを使っていました。 以前はPHP7.1で開発していてたのですが、今回Docker化してPHPのバージョンをあげようとしたら盛大にハマったので共有しておきます。 PHP7.0系でGDライブラリをインストール PHP7.0系の環境では次のようにしてGDライブラリをインストールします。 FROM php:7.1.10-apache RUN apt-get update \ && apt-get install -y \ gcc \ make \ libpng-dev \ libmcrypt-dev \ libjpeg-dev \ libfreetype6-dev \ && docker-php-
GD有効化の方法 DockerファイルにGDの有効化、必要なライブラリのインストールの部分を記載することでGDを有効化できます。 有効化した後、再ビルドすることで正しく動作するようになります。 まずはGDが使えない状態のDockerfileをご紹介します。 FROM php:7.4.1-fpm COPY install-composer.sh / RUN apt-get update \ && apt-get install -y wget git unzip libpq-dev \ && : 'Install Node.js' \ && curl -sL https://deb.nodesource.com/setup_12.x | bash - \ && apt-get install -y nodejs \ && : 'Install PHP Extensions' \ && doc
起こったこと Docker上に構築したLaravelアプリケーションにて、Intervention/imageを用いて、画像アップロード機能を実装した際に Call to undefined function Intervention\Image\Gd\imagecreatefromjpeg()Call to undefined function Intervention\Image\Gd\imagecreatefromjpeg() というエラーに遭遇しました. このエラーpngやgiffイメージをアップした際には起こらなかったのですが、 JPEGイメージをアップした時のみ発生しました. エラー文からもわかるように、PHP拡張モジュールGDにて、JPEGのサポートが有効になっていないことが原因でしたので、まとめておきます. 環境 ・PHP:7.1 ・Laravel:5.6 ・Docker
###前提・実現したいこと centos6にphp5.6のphp-gdをインストールしたいです。 ###発生している問題・エラーメッセージ php5.4のphp-gdは、インストールできるのになぜ、5.6のphp-gdがインストール出来ないのかがわかりません。 下記の回答を見たのですが、調べても結局、具体的にはどういうコマンドでインストールしたら良いのか、わからなかったので新たに質問させて頂きました。 https://teratail.com/questions/19002 # yum install --enablerepo=remi --enablerepo=remi-php56 php-gd 読み込んだプラグイン:fastestmirror, security インストール処理の設定をしています Loading mirror speeds from cached hostfile *
<?PHP // 画像の新規作成 $image = imagecreatetruecolor(500, 300); // フォントサイズ $fsize = 50; // フォント角度 $fangle = 0; // フォントカラー $fcolor = imagecolorallocate($image, 255, 255, 255); // 使用フォント $fpath = "./ipagp.ttf"; // X座標マージン $margin = 10; // 文字出力 $textList = array("連邦の", "モビルスーツは", "化け物か"); for ($i = 0; $i < count($textList); $i++) { // 画像の出力位置を計算 $px = $margin; imagettftext($image, $fsize, $fangle, $px, 75
こんばんは、牧野です。 以前、GDでの画像処理を紹介しました。 今日はPHPでよく使われるもう1つの画像処理方法、ImageMagickを使うやり方で画質にどれくらい差があるのか比べてみました。 まずは早速、テスト用プログラムです。 gd_test.php <?php $image_file = 'sample.jpg'; $img = new MyImage($image_file); $img->resizeImage(500, 500); $img->createImageFile('.', 'gd_sample.jpg'); header('Content-type: image/jpeg'); readfile('gd_sample.jpg'); class MyImage { var $img; var $width; var $height; var $font_path;
モバイル向けサービスで良く画像に文字を入れるってのがあるなーと思ってました。 "I(はあと)すいそうがく"とか"foo(はあと)bar えたーなるらぶ" 見たいな感じの。 ってことでxmappで普段勉強してるもんで、xampp上でやってみたいと思います。 GDは入ってました。 jpegとpngでの出力が可能みたいです。gifとか使う気はないです。 文字を載っけてみる いざTrueTypeFontを使って、文字を書いてみます。 ipaの一般向けフォントを使います。 <? //pngだとブラウザに宣言する。headerを送る。 Header ("Content-type: image/png"); //パレットを用意する(300px * 100px) $img=imagecreate(300,100); //背景色を指定(キャンパスを用意した変数, R,G,B Binで良いみたいです。0から2
/** * 画像のサイズを変形して保存する * @param string $srcPath * @param string $dstPath * @param int $width * @param int $height */ function transform_image_size($srcPath, $dstPath, $width, $height) { list($originalWidth, $originalHeight, $type) = getimagesize($srcPath); switch ($type) { case IMAGETYPE_JPEG: $source = imagecreatefromjpeg($srcPath); break; case IMAGETYPE_PNG: $source = imagecreatefrompng($srcPath)
う〜サムネイル、サムネイル。 今PHPでの画像のサムネイル生成方法を求めて全力検索している僕はLIGに勤めるごく一般的なプログラマー。 強いて違うところをあげるとすればGDに興味があるってとこかナー こういう画像を こうしたいんです。 という訳で、今回はPHPでGDを利用してサムネイルを作成する方法です。 まず、対象となる画像をホイホイ設定します。 $image = imagecreatefromjpeg( $file ); $fileにはローカルファイルのパス、またはなんとURLを直接指定することも可能です。(PHPの環境設定次第なんですがね、へへへ) $width = imagesx( $image ); $height = imagesy( $image ); if ( $width >= $height ) { //横長の画像の時 $side = $height; $x = flo
あるURLに実寸サイズの画像URLとリサイズしたい幅をGETパラメータで渡すだけでサムネイル的画像が返ってくる!みたいなことをやりたくて作ってみましたので、今日はその方法を紹介出来ればと思います。 プログラミングやWordPressを習得するのに一番近道な方法とは? まずはGDが使えるか確認 GDとはPHPでpng,jpeg,gifなどの画像を色々と操作出来るPHP5.2以上からデフォルトの拡張機能になっているライブラリです。 今回はこのGDを使うのでまずは自分の環境でGDが使えるか確認しましょう。 確認方法はecho phpinfo();などでPHPの設定情報を画面に表示させちゃうと楽です。 gd項目のGD Supportがenableになっていれば大丈夫です。 もしdisableになっている場合は、「php.ini」を開いて「extension=php_gd2.dll」を検索してくださ
気に入っている猫の写真を加工してみたので、 ソースコードを置いておきます。 そのソースコードが具体的に何をしているのかということを推測してみたので、 それも書いておきます。 画像加工やPHP言語はまるで専門ではないので、 信憑性はあまりありませんが、 基本的な考え方や方向性は外していないと思います。 やってみたこと 猫の写真を加工しました。 何年か前にN252iで撮った近所の野良猫です。 これを こんなふうに、 「ラフにトレースしたものをスキャナで取り込んだような感じ」 にしてみました。 本当のところは輪郭線だけを取り込みたかったのですが、 まあ、これはこれで味があるからいいかと思いました。 ソースコード あまり真面目にじろじろ見なくていいです。 <?php //ヘッダ処理 header ("content-type: image/png"); //元画像読み込み $filename =
Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su
GDを使ってイメージに文字列を表示するにはImageTTFTextを利用します。 このとき、あらかじめ出力後の大きさがわかると非常に便利です。 ImageTTFBBoxを使うと、出力時の幅や高さ(bounding box)がわかります。 以下、ImageTTFBBoxのAPIです。 array ImageTTFBBox( float $size, float $angle, string $fontfile, string $text ) ImageTTFBoxが返すarrayには4点を表す8個の要素が含まれています。 以下、arrayの内容です。 0 : 左下角の X 座標 1 : 左下角の Y 座標 2 : 右下角の X 座標 3 : 右下角の Y 座標 4 : 右上角の X 座標 5 : 右上角の Y 座標 6 : 左上角の X 座標 7 : 左上角の Y 座標 サンプルコード 以下
ImageCopyResampledを利用すると、画像の拡大/縮小ができます。 例えば、大きな画像のサムネイルをCMSで自動的に作る時などに利用できます。 ImageCopyResizedを利用した画像の拡大と縮小も可能ですが、出来上がる絵が粗くなります。 ImageCopyResizedは単純な方法で拡大縮小を行いますが、ImageCopyResampledはピクセルの補間を行って仕上がりをスムーズにします。 処理コストはImageCopyResizedの方が低く、高速になります。 bool ImageCopyResampled(resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $dst_w, int $dst_h, int $src_w, int $
リサイズに限らないけど、こういうありがち処理って「画像操作用クラス」とか作ってること多いから、いざ直接GDの関数使うような機会があっても、それはもうすっかりみごとに忘れてる。 んで毎回同じような事調べるわけよ、GIF画像の透過部分が黒くなったぞー!とか。 ということでまたGDを使って画像を縮小する機会があったので、忘れないうちにメモしとく。 大前提リサイズする時の処理の流れとしては、 元画像をGDで開く新規TrueColorイメージをリサイズ後のサイズで作るimagecopyresampled()を使って1をコピー元、2をコピー先で再サンプリング2を適切な名前で保存、もしくは表示する1, 2のイメージリソースを開放こんな感じ。 imagecopyresized()じゃないのは、imagecopyresampled()を使った方が品質が良いから。 マニュアルのimagecopyresized
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く