Photoshop によって埋め込まれたパスを使用して画像のアルファ マスクを作成する Javascript コードに取り組んでいます。IMG タグの onload ハンドラは、clip(this) を呼び出します。この関数は、画像のソース ファイルを読み込み、それをスキャンします。セットアップは次のとおりです。
function clip(img) {
var xhr = new XMLHttpRequest();
xhr.open('GET', img.src, true);
xhr.responseType = 'arraybuffer';
xhr.target = img;
xhr.onload = function(e) {
var bytes = new Uint8Array(this.response);
var p = findPhotoshopSegment(bytes);
if(p) {
var paths = parse8BIMData(bytes, p);
/* ... replaces IMG with SVG tag ... */
}
};
xhr.send();
}
http://flaczki.net46.net/JPEG/SVG.htmlでコードの動作を確認できます。
現在、Firefox、Chrome、および Safari でのみ動作します。IE9 では動作しません。ブラウザは SVG をサポートしていますが、Uint8Array はサポートしていません。何らかの回避策はありますか?