Bitmapとbyte[]の変換
いざ書くといつも忘れてしまうので。
画像ファイル(Bitmap)からbyte[]に変換
Bitmap bmp = new Bitmap(画像のPATH); //using System.Drawing MemoryStream ms = new MemoryStream(); bmp.Save(ms,ImageFormat.Png); //using System.Drawing.Imaging;
byte[]から画像ファイル(Bitmap)に変換
MemoryStream ms = new MemoryStream(byte[]のデータ); Bitmap bmp = new Bitmap(ms); ms.Close(); bmp.Save(画像のPATH);
byte[]って何者かいまだによく知らない。
「しょうゆ味のだし汁で煮ただいこんが最高」を英語で言うと
Daikon radish simmered in soy broth is the best!!
The broth in Kanto(関東のだし汁) is made with bonito flakes(かつお節) and "kombu" seaweed.
In Hokkaido, dried baby fish(煮干し) are added to enrich the flavor.
日経より引用。
cakebox/cakephpでphpunitが認識されない
cakeboxでcakephp(2.7)とphpunit(4.4.4)がインストールされているけどcakephpからphpunitが認識されない件。
ブラウザからtest.phpを表示すると、
とか表示されてテストを実行できない。
composer.jsonのvendor-dirディレクトリを修正して解決。
(修正前)
"config": { "vendor-dir": "app/Vendor/Composer" },
(修正後)
"config": { "vendor-dir": "Vendor/Composer" },
app/Vendor/Composer/phpunit/...となればOKみたい。
WordPressの投稿をJSON形式で受け取る
XMLRPCを使って最近の投稿をJSON形式で受け取るまで。
XMLRPCのライブラリーをWordPressにコピーする
下記からIXR_Library.phpをダウンロードして自分のWordPressのサイトへコピーする。
http://scripts.incutio.com/xmlrpc/ The Incutio XML-RPC Library for PHP
(ページの上にある「Download the Library」をクリック)
投稿をJSONで受け取るPHPを書く
下記をgetposts.phpとしてWordPressのサイトへ保存する。
変更箇所はサイト名、ユーザー名、パスワード。
<?php // inctioのライブラリ呼び出し include_once('IXR_Library.php'); $wp_username = 'admin'; $wp_password = 'admin'; $siteurl = 'http://sample.jp/'; $filter = array( 'number' => 10, //最近の10件取得 'offset' => 0, ); $client = new IXR_Client( $siteurl . 'xmlrpc.php' ); $status = $client->query( "wp.getPosts", //POSTを取得する 1, // blog ID: 通常は1、マルチサイト時変更 $wp_username, // ユーザー名 $wp_password, // パスワード $filter ); $posts = $client->getResponse(); //arrayで戻ってくる echo json_encode( $posts ); //JSONで返す
確認する
http://sample.jp/getposts.phpへアクセスしてJSONが戻ってくればOK。
うまくいかない時
ブラウザで表示が真っ白の時はphpの構文が違ってる可能性があるのでphp -l getposts.phpで構文チェックするとか。
IXR_Library.phpのエラー内容がわかりづらい。ユーザー名とパスワードが違ってないか、new IXR_Clientで渡すURLが違ってないか確認など。
右クリック右クリック管理者権限で実行しかできないと思ってた
GitBashを右クリック右クリック管理者権限で実行がめんどくさいなあと思ったら、コマンドプロンプトから管理者権限で動かせると。
powershell -command "Start-Process -wait \"C:\Program Files (x86)\Git\bin\sh.exe\" -argumentlist \"--login -i\" -Verb runas"
LINQ to XMLが便利すぎてメモ
下記のsample.xmlに対して
<?xml version="1.0" encoding="UTF-8" ?> <LIST> <文字 ID="00001"> <UCS>4E00</UCS> <CID>1200</CID> </文字> <文字 ID="00002"> <UCS>4E05</UCS> <CID>14297</CID> </文字> </LIST>
<文字>のタグの一覧を取得する
XDocument xdoc = XDocument.Load("sample.xml"); //戻り値はIEnumerable<XElement> var lst = from moji in xdoc.Descendants("文字") select moji; foreach (var/*XElement*/ elem in lst) { Console.WriteLine("TAG NAME={0}", elem.Name); //文字 var ucs = elem.Element("UCS"); //子供のUCSを取得 Console.WriteLine("UCS={0}", ucs.Value/*タグに挟まれた文字列*/); }
IDの一覧を取得する
XDocument xdoc = XDocument.Load("sample.xml"); //戻り値はIEnumerable<string> var lst = from moji in xdoc.Descendants("文字") select moji.Attribute("ID").Value; foreach (var/*string*/ id in idlst) { Console.WriteLine("ID={0}", id); }
こんなに簡単だとプログラムの書き方を忘れる。