2016-04-25 4 views
0

ダイナミックに生成されたPHPイメージにthese iconsを使用して、Webページに天気を埋め込むことができます。PHPで生成された画像に天気アイコンのWebフォントを使用するにはどうすればよいですか?

今私はmet.noの気象サービスを使用しています。これは "シンボル"と呼ばれるきれいなプロパティを提供し、整数です。 1 =晴れ、2 =曇りなど天気アイコンレポのPull Requestには、echo "<i class='wi wi-yrno-$symbol'></i>";に電話して常に正しいアイコンを取得できるので、met.noのマッピングが含まれています。

しかし、PHPの画像作成機能を使用してこれを行う方法はわかりません。 Javascriptでは、これを行うことができます:Programmatically get FontAwesome unicode value by name、しかし、私はこれをPHPでやるのでしょうか?私はちょうどarray("wi-yrno-1 => "(unicode escape code here)", "wi-yrno-2" => "(another escape code here) ...の配列を作る必要があると思うが、よりよい方法があるかどうか疑問に思った。

答えて

0

あなたのサーバー上にイメージを生成し、そのコンテンツをブラウザに送信していると仮定しています。

あなたが与えたJavaScriptの例は無関係です。主に、フォントが既にロードされ、クラス名にマップされているためです。 PHPでは、このマッピングを再作成する必要があります。シンボルを10進値に単純にマッピングすると動作します。例えば。

$symbols = [0 => '&#xf00d;', 1 => ..., 2 => ..., ...]; 

マッピングを設定したら、使用しているフォントファイルへの絶対パスが必要です。あなたは、imagettftextを使用して、指定されたttfフォントファイルで画像にテキストを描画することを知っています。これはttfフォントファイル(したがって関数の名前)でなければなりません。

// the symbol response from the met.no request 
$symbolIntFromApi = 0; 

// the mapping for the decimal characters 
$symbols = [0 => '&#xf00d;']; 

// create the image 
$image = imagecreatetruecolor(1000, 1000); 

// set background color to white 
imagefill($image, 0, 0, imagecolorallocate($image, 255, 255, 255)); 

// write the text using the given font 
imagettftext($image, 12, 0, 20, 20, 0, realpath('./font/weathericons-regular-webfont.ttf'), $symbols[$symbol]); 

// save the image 
imagepng($image, 'test.png'); 
+0

ありがとうございます。私はそれが当てはまると仮定しましたが、私が抱えている問題に対する答えを探しているときに、互換性のない技術のように見えるときに、WがX、Y、Zを行うことができます。 – DrFrankly

関連する問題