画像を円でくり抜き、背景を透過する(GD使用)PHPで画像の真ん中を円形でくり抜き。円形以外の領域は透過している画像をGDを使用して作成してみます。500pxの画像を使用します。画像の一部を切り取り、別の画像ファイルに保存する(GD使用)作戦まず、元の画像と同じサイズの画像を用意。真ん中を円で塗りつぶします。この時、塗りつぶす色は透過色を指定しておきます。元画像と、円形の透過した画像を重ね合わせます。'debug.png');デバッグ用に出力した中間画像はこのようになります。・mask1.png・mask2.png・debug.png元画像の真ん中だけくり抜くことができました。最後に、緑色で塗りつぶしている箇所を透過色に変更します。最終的なソースはこのようになりました。'result.png');狙い通りの画像が得られました。・result.pngちゃんと透過されているかわかりにくいのですね。画像ビューワーで表示した結果はこのようになりました。画像の一部を切り取り、別の画像ファイルに保存する(GD使用)PHPでGDライブラリを使用し、画像の一部を切り取り。別のファイルに保存してみます。GD大抵のレンタルサーバーにインストール済だと思います。imagecreatefromjpegというようなエラーが表示された場合はGDがインストールされていません。以下のコマンドでインストールします。php-gd画像の切り抜き切り抜いた箇所を貼り付ける画像リソースをimagecreatetruecolorで作成。$height)imagecopyresampledで切り抜き範囲を指定し貼り付け。$src_h)imagepngで保存します。)サンプル画像はこちらからお借りしました。http://anihonetwallpaper.com/%e3%83%a9%e3%83%96%e3%83%a9%e3%82%a4%e3%83%96%e5%a3%81%e7%b4%99/16721サンプルプログラム矢澤にこの画像を正方形で切り抜いてみます。'dst.png');うまく切り抜けました。18.04aptでインストールできるPHPのバージョンは7.2です。7.3のインストールを試してみます。こちらを参考にしました。upgradeで現在インストールされているパッケージを最新に更新しておきます。追加をキャンセルできます。7.3がインストール候補に追加されます。7.3のコマンドラインインターフェースをインストール。7.3がインストールできました。5.8laravel/slack-notification-channelを利用してSlackへの通知を試してみました。URLプログラムの前に通知先のURLを取得しておきます。https://slack.com/apps/A0F7XDUAZhttps://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXという形式のURLが取得できると思います。.envファイルに追記しておきます。・.envSLACK_URL=https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXlaravel/slack-notification-channelつづいて、slack通知用のライブラリ「laravel/slack-notification-channel」をインストールします。laravel/slack-notification-channelNotifiableSlackへの通知はNotifiableトレイトを使用しているクラスに対して実行可能となります。サンプルして、デフォルトで存在するApp\Userを変更しSlackへの通知を可能にしています。}}Notification通知する内容はNotificationクラスで指定します。以下のコマンドでクラスの雛形を作成。SampleNotificationapp/Notifications/SampleNotification.phpが出力されます。内容を以下のように編集。}}送信テスト用のコマンドを作成します。my:commandお手軽にSlackへ通知できました。複数人に一括で配信したい場合は、Notification::sendが便利です。}}ユーザーごとにメッセージ内容を変更SampleNotificationのtoSlackは、Notifiableトレイトをuseしているオブジェクトが渡されます。今回の例だとUserオブジェクトが$notifiableとして渡されます。ユーザーごとにメッセージを変更したい場合は、$notifiableの内容により処理を変更すればOKです。}}実行結果その他の使い方は、本家のドキュメントが詳しいです。2.0認証が公開されています。Slackこの機能を利用して、LaravelでSlackアカウントによるSSO認証を組み込んでみます。認証前の雛形ログイン前の画面とログイン後に表示する画面を作成します。</body></html>ログイン画面のリンクをクリックしたらSlackのOAuth認証を実行。ログイン後の画面に遷移する想定です。Appを作成してOAuthのための認証情報を作成しておきます。こちらが参考になりました。Slackを試す以下のリンクより認証に使用するアプリを作成します。Secretの2つですので控えておきます。Permissions」を表示します。URLs」の箇所にOAuth認証後のリダイレクトを許可するURLを追加しておきます。今回はhttp://[テストサーバー]/callbackを許可しました。これでSlack側の設定は完了です。SocialiteLaravelにはlaravel/socialite」というOAuth認証を使用したログインを実現するためのパッケージが用意されています。5.3で外部アカウントを使用した認証機能を実装する方法しかしSlackには対応していないそうで、別途自前で実装する必要があります。5.3のSocialiteに含まれていないLINEやYahoo!JAPANなどの認証サービスを利用する方法Slackの実装サンプルを公開されている記事を見つけました。Socialiteこちらを参考に実装してみます。composerでlaravel/socialiteをインストールします。Laravelのプロジェクトディレクトリに移動して以下のコマンドを実行。laravel/socialite続いて、.envファイルを編集。認証後にリダイレクトするURLを追記します。・.evnSLACK_CLIENT_ID=729920959312.7XXXXXXXXXSLACK_CLIENT_SECRET=9b605bf03920887XXXXXXXXXXXXSLACK_REDIRECT_CALLBACK_URL=http://192.168.1.103:8000/callbackservices.phpで追記した.envのslackの情報が反映されるよう編集します。Socialite下準備の設定は終わったので、いよいよSlack認証を行うSocialiteを作成していきます。app/Socialiteディレクトリを作成。Socialite.phpを作成します。}}app/ProvidersディレクトリにSocialiteServiceProvider.phpを作成します。}}最後にapp/SocialiteディレクトリへSlackProvider.phpを作成します。}}config/app.phpを編集。作成したSocialiteServiceProviderが利用できるよう、providersに追記します。OAuth認証を利用する準備ができました。アプリケーションへの組み込み最初に作成した雛形にSlack認証を組み込んでみます。無事SlackのOAuthを通過し、アプリケーションに戻ってきました。Slackから取得できる情報は以下の通り。次のページプロフィールAuthor:symfoblog形式だと探しにくいので、まとめサイト作成中です。