2

JSZipライブラリを使用して、アップロードされた epub ファイルを抽出しています。私はそれを正常に繰り返し、ライブラリ内のファイルの名前を次のように表示できます。

zipEntry.name;

そして、文字列比較を含む cover.jpg ファイルを見つけることができます。HTMLページの画像のソースをその表紙に設定するにはどうすればよいですか? 私が試してみました:

src=zipEntry;

src=zipEntry.name;

それは可能ですか?jQueryで簡単にできる方法はありますか?

4

3 に答える 3

4

ページに空の画像を入れてみました

<img id="testimg" />

次に、この JavaScript コードを使用して、zip ファイルから PNG 画像を表示します。

var zipEntry = zip.file('test.png');
$('#testimg')[0].src = 'data:image/png;base64,' + base64_encode(zipEntry.asBinary());

これは私にとってはうまくいきました。実際のコードのデモについては、このJSFiddleを参照してください。

関数が必要になりますbase64_encode()( phpjs.orgから):

function base64_encode (data) {
  // phpjs.org
  var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
  var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
    ac = 0,
    enc = "",
    tmp_arr = [];

  if (!data) {
    return data;
  }

  do { // pack three octets into four hexets
    o1 = data.charCodeAt(i++);
    o2 = data.charCodeAt(i++);
    o3 = data.charCodeAt(i++);

    bits = o1 << 16 | o2 << 8 | o3;

    h1 = bits >> 18 & 0x3f;
    h2 = bits >> 12 & 0x3f;
    h3 = bits >> 6 & 0x3f;
    h4 = bits & 0x3f;

    // use hexets to index into b64, and append result to encoded string
    tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
  } while (i < data.length);

  enc = tmp_arr.join('');

  var r = data.length % 3;

  return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);
}
于 2013-04-06T14:54:13.063 に答える
1

イメージ名だけでなく、どのイメージにあるホストを知っている必要があります。またはbase64で画像データを持っています。

load image from external (or local) host:
<img src="{HOST}/cover.jpg"/>

base64:
<img src="data:image/jpg;base64,R0lGODdhMAAw....." />
于 2013-04-06T12:00:57.093 に答える
0

こんにちは、{"+http//......+"} を使用して、ソースの代わりにこれとユーザー json 配列イメージ パスを使用しています。

for(i=0;i<10;i++){
document.getElementById("five_star").innerHTML = "<img alt='' src='images/activestar.png'>";
}
于 2013-09-25T06:03:26.833 に答える