GeoPatternとは
GeoPatternとは、文字列を与えてSVG画像を生成するライブラリです。 与えた文字列はハッシュに変換され、それをもとに幾何学パターン(全16種)や色相、彩度が決定されます。事前に指定することも可能です。 本家RubyGem版の他に、有志による各言語での実装が揃っています(後述)。
生成した画像はCSSのbackground-image
での利用が想定されています。タイル型の画像を出力するので、それを縦方向・横方向にリピートして表示します。base64 に変換することもできるので便利ですよ。
GeoPattern が使われているWebサイト
GeoPatternの制作者はGitHubのスタッフの方です。それもそのはず、GeoPatternはGitHubのWebサイトで利用されているのです。カッコいいですね〜。
デモ
Webページ上で動作イメージが確認できます。日本語でも大丈夫ですよ!
画面下の「Save Pattern...」からPNGファイルをダウンロードできます。
どんな感じで使うの
Ruby
$ gem install geo_pattern
require 'geo_pattern' pattern = GeoPattern.generate('Mastering Markdown') # pattern = GeoPattern.generate('Mastering Markdown', color: '#fc0', patterns: :sine_waves) puts pattern.to_svg # => <svg xmlns="http://www.w3.org/2000/svg" ... puts pattern.to_base64 # => PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC... puts pattern.to_data_uri # => url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0i...);
<div style="background-image: <%= pattern.to_data_uri %>"></div>
文字列リストからまとめて生成するやつ
作ったので参考にどうぞ。
JS or jQuery plugin
<script src="js/jquery.min.js"></script> <!-- optional --> <script src="js/geopattern.min.js"></script>
// Use the global... var pattern = GeoPattern.generate('GitHub'); $('#geopattern').css('background-image', pattern.toDataUrl()); // ...or the plugin $('#geopattern').geopattern('GitHub');
Ports & related projects
SVG Advent Calendar 2015
この記事は SVG Advent Calendar 2015 の 8日目 の記事として書かれました。
APPLE iMac Retina 5K Display 27 (3.5GHz QuadCore i5/8GB/1TB Fusion/ AMD Radeon R9 M290X) MF886J/A
- 出版社/メーカー: アップル
- 発売日: 2014/10/21
- メディア: Personal Computers
- この商品を含むブログ (3件) を見る