ノラプログラマーの技術メモ

ネットで調べても出てこなかった情報を載せていきたい技術系ブログ。

JPGやPNGのサムネイルを表示するPHPプログラムのサンプル(GDライブラリを使用)

JPGやPNG形式の画像をサムネイル表示するPHPプログラムを作ったのでその記録。

画像処理にはGDライブラリを使用するので、GDが使用可能かどうかを事前に調べておく。

適当なファイル(例:info.php)を作って、下記の内容を書き込む。

<?php
    phpinfo();
?>

適当なファイル(例:info.php)をサーバーにアップロードして、ブラウザからアクセスする。

するとPHPの設定が表示されるので、GDの項目が「enable」になっていることを確認する。

f:id:kawai_norimitsu:20190827092009p:plain

「enable」になっていない場合は、自力でぐぐってGDライブラリをインストールしておくこと。

さて、サムネイルを表示するPHPのサンプル(例:thumbnail.php)は次の通り。

<?php
ini_set("gd.jpeg_ignore_warning", 1);

$width = 150; // 画像横幅を指定
$url = "https://s.yimg.jp/images/top/sp2/cmn/logo-170307.png"; // 画像URLを指定

list($image_w, $image_h) = getimagesize($url);
$proportion = $image_w / $image_h;
$height = $width / $proportion;
if($proportion < 1){
	$height = $width;
	$width = $width * $proportion;
}

if(strpos($url, '.png') !== false) {
	$image = imagecreatefrompng($url);
	header('Content-type: image/png');
}
else {
	$image = imagecreatefromjpeg($url);
	header('Content-type: image/jpeg');
}

$canvas = imagecreatetruecolor($width, $height);
imagecopyresampled($canvas, $image, 0, 0, 0, 0, $width, $height, $image_w, $image_h);
imagejpeg($canvas, NULL, 100);
imagedestroy($canvas);

ポイントは1行目の「gd.jpeg_ignore_warning」だろう。

これを指定しておくことで、ファイルサイズが大きなJPGでも警告を無視して表示できるようになる。

あとは画像ヘッダーの指定かな。

「Content-type: image/png」もしくは「Content-type: image/jpeg」を適宜指定するようにしておく。

画像形式によらず、imagejpeg関数でOKなのはちょっと驚き。

さて、このサムネイル表示プログラム(例:thumbnail.php)をHTMLから呼び出すには、次のように記述する。

<img src="thumbnail.php">

以上、お疲れ様でした。

iPhoneにSuicaを追加すると「カードが追加されませんでした。詳しくはカード会社にお問合せください。」エラーの解決方法

f:id:kawai_norimitsu:20190613085056p:plain

症状

iPhone7に、登録済みのSuicaを読み込もうとした。なおこのSuicaは、Suicaアプリで作成され、iCloudに紐づけられている。

設定にある「WalletとApple Pay」からカードを追加すると、「カードが追加されませんでした。詳しくはカード会社にお問合せください。」とのエラーが表示。

時間帯を変えて、再度試してみてもダメだった。

24時間あけて試してみる

調べてみると、Apple Pay+Suicaのよくあるご質問のページにエラー発生から24時間以上あけて、再度お試しくださいと書かれていた。

どうやら処理未完了が複数回発生すると、一時的なロックが掛かるとのことだ。

appsuica.okbiz.okwave.jp

24時間以上あけてSuicaを追加しようとするが、やはりダメだった。

Apple Careに電話した

仕方ないので、Apple Careに電話した。

電話ではiPhoneのIMEIをプッシュホンで入力する必要がある。IMEIは、iPhoneの「設定 - 一般 - 情報」に表示されていて、13桁の数字だ。

Apple Careサービス&サポートライン】
電話番号:0120-277-535
受付時間:9時~21時(年中無休)
※お問合せの際には、必ず「Apple PayのSuicaに関すること」とお申し出ください

appsuica.okbiz.okwave.jp

電話で分かったことは、JR東日本に問い合わせてくれとのことだった。

もし「定期券のSuicaである」または「Suicaの残高が2万円以上ある」場合は、Apple側の対応になるとのこと。

JR東日本に電話した

電話では、メニューをプッシュホンで選ぶ。最初は「Suicaカードの取り込み」についてなので(2)を、続いて「iPhoneApple Watchを使用」なので(2)を押す。

なおオペレーターにつながると、本人確認のため、氏名・性別・生年月日・携帯番号など聞かれる。

Suicaアプリケーション・サポートデスク】
電話番号:050-2016-5005
受付時間:8時~22時(年中無休)

appsuica.okbiz.okwave.jp

エラーが解決

調べてもらったところ、SuicaApple Watchに取り込む際に、アクティベーション中にカードを削除したため、削除処理が途中で止まっていたとのことだった。

なので、JR東日本側で一度Suicaを退会させるので、新規登録して欲しいと言われた。そして以前のSuicaの残高は、専用のフォームから返金申請して欲しいと伝えられた。

ここ数日、とても面倒な思いをしたが、なんとかiPhoneSuicaアプリから新規登録してApple Watchに移せた。めでたしめでたし。

よく使う英語表現まとめ

◆お願いできますか?
 Would you ?(+ジェスチャー

◆よろしいですか?
 May I ?(+ジェスチャー

◆メニューを持ってきてください
 May I have a menu ?

◆田中さんを呼んでいただけますか?
 May I have Mr. Tanaka ?

◆(窓が開かないので)手伝ってもらえますか?
 May I have some help with the window ?

◆ここの調子が悪い
 I have a problem here.

◆これの調子が悪い
 I have a problem with this.

◆こんにちは
 Hi.

◆え?
 Sorry ?

◆ありがとう
 Thanks.(Thanks a lot.)

◆いえいえ(ありがとうの返し)
 Sure.

◆あちらの方です
 It's that way.

◆この方向であってますか?
 It's that way ?

◆ここから15分です
 It's fifteen minutes from here.

◆すみません
 Excuse me.

◆○○のことを覚えていますか?
 Do you remember ~ ?

◆良いですか?
 ~, Is that OK ?

◆○○ですよね?
 ~, right ?

◆あなたはどうですか?
 How about you ?

◆とりあえず10個発注したいのですが
 We'd like to order 10 for now.
 ※ビジネスの主語はWe

◆返信をお待ちしております
 I'm looking forward to your reply.

◆見る
 see

◆たくさん
 a lot of

◆前置詞
 at, in, on, for, to, by, with

◆よく使う9パターン

過去 現在 未来
肯定 I ate ~ I eat ~ I will eat ~
否定 I didn't eat ~ I don't eat ~ I won't eat ~
疑問 Did you eat ~ Do you eat ~ Are you going to eat ~

アドラー心理学まとめ

▼健康なパーソナリティ
1.自分を受け入れていること
2.世界を信頼していること
3.貢献感を持っていること
4.誠実であること
5.共同体感覚を持っていること

▼不健康なパーソナリティ
「悪いあなた、可哀想なわたし」

▼共同体感覚を育てる(縦の人間関係から横の人間関係へ)
1.相手を尊敬すること
2.相手を信頼すること
3.協力できること
4.共感すること
5.理性的に問題を解決すること
6.主張的であること
7.平等であること
8.寛容であること

▼頼み方の4パターン
・主張的な自己主張(相手を傷つけないよう配慮し自分の要求を口に出す)
・非主張的な自己主張(自分の要求を口に出さない)
・攻撃的な自己主張(相手を脅かして自分の要求を通そうとする)
・復習的な自己主張(自分の要求を口に出さず相手を傷つける)

▼勇気づけ
1.貢献に注目する
2.過程を重視する
3.成果を指摘する
4.失敗を受け入れる
5.成長を重視する
6.相手に判断をゆだねる
7.肯定的に表現する
8.「私メッセージ」を使う
9.「意見言葉」を使う

▼責任の取り方
1.謝ること
2.原状を回復すること
3.再発を防止すること

ビジネスメール表現まとめ

レビュー(クレーム)のお返事

▼お客様レビュー
お椀を購入しましたが食洗器で洗っても臭いがとれません!
ニスの臭いが気になって食べる気になれません!

▼ショップから返信
お客さまにはご不快な思いをさせてしまい、申し訳ございません。【お詫び・配慮】
ご指摘の臭いについてですが、当店ではニスを一切使用しておりませんので、おそらく漆の匂いではないかと思います。【事情説明】
風通しの良い日陰で数日干して頂ければ、匂いも無くなってくるかと思います。お手数ではございますが、ぜひこの方法を一度お試しください。【提案】


アポイントの依頼

□□社 佐藤様

○○社の田中です。
お世話になっております。

ご指摘の件につきまして、一度、打合せをさせて頂きたく存じます。

2月3日・4日・5日のいずれかの日に、1時間ほどお時間をいただくことは可能でしょうか。
(11日の週でしたら、私は12日午後と13日午前を除いて、いつでもお伺いできます。)

何とぞよろしくお願いいたします。


仕事の依頼

□□社 佐藤様

○○社の田中です。
お世話になっております。

当社の春のキャンペーンのDMの内容がようやく決定したのですが、営業からデザインを一部変更したいとの要望が出ております。

つきましては、今月末までに印刷所に入稿するスケジュールでデザインをお願いできないかと考えております。

誠に恐縮ですが、ご検討いただければ幸いです。
(まだ細かい点を詰めておりませんが、ご意見をいただければ幸いです。)

何とぞよろしくお願いいたします。


お詫び

□□社 佐藤様

○○社の田中です。
お世話になっております。

参加者名簿で中村様のお名前に間違いがありました件につき、深くお詫び申し上げます。(お詫び)

当日、ご指摘を受け、口頭で訂正させていただきましたが、たいへん失礼なことになってしまいました。(経緯・反省)

今後はこのようなことがないよう十分に注意いたしますので、ご容赦くださいますよう、お願い申し上げます。(近いと今後へのお願い)


相手のミスを伝える

□□社 佐藤様

○○社の田中です。
お世話になっております。

当社の春のキャンペーンのDMの内容につきまして確認しましたところ、「ご紹介」は「ご照会」の変換間違いかと思われます。

今一度、ご確認いただければと存じます。

よろしくお願いいたします。


辞退する

□□社 佐藤様

○○社の田中です。
お世話になっております。

このたびは、タイムリーなシンポジウムのご案内をありがとうございました。

せっかくのお申し出ではございますが、辞退申し上げることになりました。
(諸般の事情により、シンポジウムの参加につきまして、見送らせていただくことになりました。)

またこのような機会がありましたら、声をおかけいただきたくお願いいたします。

シンポジウムのご盛会をお祈りいたします。

Word2016でショートカットキーを設定する方法

マウス操作が面倒くさい

MS-Word2016を使っていると、マウスで操作するのが面倒臭い時がある。

例えば表を作ってWordに自動計算させようとするとき、メニューにある表ツールの[レイアウト]から[計算式]を選ぶ。

f:id:kawai_norimitsu:20180617161452p:plain

1度や2度なら気にならないが、計算式を何度も編集しようとすると、次第に面倒くさくなってくるのだ。

だからショートカットキーを登録して、キーボードで操作できるようにすることにした。

ショートカットキーを設定する手順

メニューにある[ファイル]をクリックする。

f:id:kawai_norimitsu:20180617162446p:plain

左側メニューにある[オプション]をクリックする。

f:id:kawai_norimitsu:20180617162511p:plain

左側メニューにある[リボンのユーザー設定]から[ユーザー設定]ボタンをクリックする。

f:id:kawai_norimitsu:20180617162632p:plain

キーボードのユーザー設定ダイアログが開く。分類の[表ツール][レイアウト]タブをクリックし、コマンドの[TableFormula]をクリックする。

「割り当てるキーを押してください」のフォームをクリックしてから、登録したいキーを押す。最後に[割り当て]ボタンをクリックする。

f:id:kawai_norimitsu:20180617163030p:plain

[割り当て]ボタンをクリックすると、現在のキーにショートカットキーが表示される。正しく登録できたら、すべてのダイアログを閉じる。

f:id:kawai_norimitsu:20180617163124p:plain

再びWordの画面に戻って、ショートカットキーを押してみる。正しく設定されていれば、キーボードから計算式ダイアログが表示される。

f:id:kawai_norimitsu:20180617163251p:plain

【まとめ】論理と問題解決の技法

▼論理

1.論点は何?

「何を考えるべきか」をまず考える。
論点は改善感度が高い問題であること。また答えを出し得ること。

2.複数の根拠で主張を支える

納得感の高い根拠を複数用意し、主張を支える。
ピラミッドストラクチャーと呼ばれる型がある。

空、雨、傘(演繹法/三段論法)

「空が曇ってきた」⇒「雨が降りそうだ」⇒「傘を持っていこう」というロジックで、論理の飛躍を防ぐ。

WHYの並び立て(帰納法

「(主張)です。なぜなら(根拠A)、(根拠B)、(根拠C)だからです」というロジックで、論拠を強化する。

3.根拠はファクトベースで!

どれだけ論理展開が正しくても、ベースとなる根拠が間違っていたら、最終的な主張も間違ったものになってしまうため。

▼問題解決

1.分析フェーズ

1-1.考えられる原因をすべて挙げる

MECE(モレなくダブりなく)を意識しながら、問題を分解する。
分解する型として、「WHERE・WHAT・HOW」と「最終形からの逆算」が役立つ。

1-2.仮説を立てる

仮説は「はい/いいえ」「多い/少ない」「増えている/減っている」など、答えが出せること。
一次情報に触れ、一次情報を大切にする。

1-3.検証する

データを集めて分析する。分析とは比較、すなわち比べること。
定量分析の型である「比較」「構成」「変化」を使い、データで語る。

2.処置フェーズ

2-1.考えられる打ち手をすべて挙げる

MECE(モレなくダブりなく)を意識しながら、打ち手のアイデアを幅広く洗い出す。

2-2.最適な打ち手を選ぶ

すべての打ち手をマトリックスの上に並べる。
実行しやすく、効果の大きいもの(図の右上)が最適な打ち手。

f:id:kawai_norimitsu:20180603214827p:plain

2-3.実行する

期日から逆算して、実行スケジュールを組む。
スケジュールには、具体的に誰が・いつまでに・何をやるのかを書き出す。