ソースコード
<style>
#img_div{
width:200px;
height:200px;
}
.test1{
position:absolute;
}
</style>
<div id="img_div">
<img src="toumei1.png" class="test1" />
<img src="toumei2.png" class="test1" />
<img src="toumei3.png" class="test1" />
<img src="toumei4.png" class="test1" />
</div>
ソースコード
<style>
#img_div{
width:200px;
height:50px;
}
.test1{
position:absolute;
}
</style>
<div id="img_div">
<img src="toumei1.png" class="test1" />
<img src="toumei2.png" class="test1" />
<img src="toumei3.png" class="test1" />
<img src="toumei4.png" class="test1" />
</div>
いろは<br>
<br>
ソースコード
<script src="jquery.js"></script>
<script src="html2canvas.js"></script>
<style>
#img_div{
width:200px;
height:200px;
}
.test1{
position:absolute;
}
</style>
<script>
function test2(){
// 画像を重ねて表示しているDIV要素を取得する。
var element = $('#img_div')[0];
// DIV要素を画像のバイナリデータに変換する。
html2canvas(element, { onrendered: function(canvas) {
// 変換後に呼び出されるコールバック
// 変換後、バイナリデータをデータURLスキームとして取得する。
var data_url_scheme= canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
// IMG要素へデータURLスキームをセットして画像表示する。
$('#img2')[0].src = data_url_scheme;
}});
}
</script>
~略~
<input type="button" class="btn btn-success btn-xs" value="テスト" onclick="test2()" /><br>
<div style="width:200px;height:200px;background-color:#cdebd9">
<div id="img_div2">いろは</div>
<div id="img_div">
<img src="toumei1.png" class="test1" />
<img src="toumei2.png" class="test1" />
<img src="toumei3.png" class="test1" />
<img src="toumei4.png" class="test1" />
</div>
</div>
<img id="img2" src="" alt="" /><br>
ソースコード
<script src="jquery.js"></script>
<script src="html2canvas.js"></script>
<style>
#img_div{
width:200px;
height:200px;
}
.test1{
position:absolute;
}
</style>
<script>
function test2(){
// 画像を重ねて表示しているDIV要素を取得する。
var element = $('#img_div')[0];
//DOM要素を画像のバイナリデータに変換する。
html2canvas(element, { onrendered: function(canvas) {
// 変換後に呼び出されるコールバック
// 変換後、バイナリデータをデータURLスキームとして取得する。
var data_url_scheme= canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
// データURLスキームをロケーションにセットすることにより、画像ファイルダウンロードを行う。
window.location.href = data_url_scheme;
}});
}
</script>
~略~
<input type="button" class="btn btn-success btn-xs" value="ダウンロード" onclick="test2()" /><br>
<div >
<div id="img_div2">いろは</div>
<div id="img_div">
<img src="toumei1.png" class="test1" />
<img src="toumei2.png" class="test1" />
<img src="toumei3.png" class="test1" />
<img src="toumei4.png" class="test1" />
</div>
</div>
ソースコード
<script src="jquery.js"></script>
<script src="html2canvas.js"></script>
<script src="FileSaver.js"></script>
<style>
#img_div{
width:200px;
height:200px;
}
.test1{
position:absolute;
}
</style>
<script>
function test2(){
// 画像を重ねて表示しているDIV要素を取得する。
var element = $('#img_div')[0];
//DOM要素を画像のバイナリデータに変換する。
html2canvas(element, { onrendered: function(canvas) {
// 変換後に呼び出されるコールバック
// MIMEタイプ
var type = 'image/png';
/// 変換後、バイナリデータをデータURLスキームとして取得する。
var data_url_scheme= canvas.toDataURL(type).replace("image/png", "image/octet-stream");
// データURLスキームのデータ部分をバイナリデータとして抜き出す。
var bin = atob(data_url_scheme.split(',')[1]);
// 空の Uint8Arrayビューを作る
var buffer = new Uint8Array(bin.length);
// バイナリデータの値をUint8Arrayビューに 1 バイトずつ値を埋めいく。
for (var i = 0; i < bin.length; i++) {
buffer[i] = bin.charCodeAt(i);
}
// Uint8Arrayビューのバッファーを抜き出し、それを元に Blob を作る
var blob = new Blob([buffer.buffer], {type: type});
// FileSaver.jsの機能を利用し、Blob化したデータをファイルダウンロードする。(ここでファイル名を指定できる)
saveAs(
blob
, "test_usagi.png"
);
}});
}
</script>
~略~
<input type="button" class="btn btn-success btn-xs" value="ダウンロード" onclick="test2()" /><br>
<div>
<div id="img_div2">いろは</div>
<div id="img_div">
<img src="toumei1.png" class="test1" />
<img src="toumei2.png" class="test1" />
<img src="toumei3.png" class="test1" />
<img src="toumei4.png" class="test1" />
</div>
</div>
ソースコード
<script src="jquery.js"></script>
<script src="html2canvas.js"></script>
<style>
#img_div{
width:200px;
height:200px;
}
.test1{
position:absolute;
}
</style>
<script>
function test2(){
// 画像を重ねて表示しているDIV要素を取得する。
var element = $('#img_div')[0];
//DOM要素を画像のバイナリデータに変換する。
html2canvas(element, { onrendered: function(canvas) {
// 変換後に呼び出されるコールバック
// MIMEタイプ
var type = 'image/png';
// DOM要素からバイナリの一種であるデータURLスキームに変換する
var data_url_scheme= canvas.toDataURL(type).replace("image/png", "image/octet-stream");
// データURLスキームからbase64形式のバイナリデータに変換する
var base64 = btoa(data_url_scheme);
base64 = base64.replace(/^.*,/, '');
// ファイル名を指定
var file_name = "demo6.png";
file_name = encodeURIComponent(file_name);// URLエンコード
// base64形式のバイナリデータをAjaxでサーバーに送信する。
$.ajax({
type: "POST",
url: "upload.php",
data: 'base64=' + base64 + '&file_name=' + file_name,
cache: false,
dataType: "text",
success: function(res, type) {
$('#res').html('サーバーへファイルを保存しました。→ '+res);
},
error: function(xmlHttpRequest, textStatus, errorThrown){
console.log(xmlHttpRequest.responseText);
alert(textStatus);
}
});// ajax
}});
}
</script>
~略~
<input type="button" class="btn btn-success btn-xs" value="AJAX" onclick="test2()" /><br>
<div>
<div id="img_div2">いろは</div>
<div id="img_div">
<img src="toumei1.png" class="test1" />
<img src="toumei2.png" class="test1" />
<img src="toumei3.png" class="test1" />
<img src="toumei4.png" class="test1" />
</div>
</div>
upload.php
<?php
$base64=$_POST['base64'];
$file_name=$_POST['file_name'];
$file_name = urldecode ($file_name);
$file_name = 'upload_img/'.$file_name;
echo $file_name;
// BASE64バイナリ文字列をファイルに変換して書き出す
$base64 = base64_decode($base64);
$base64 = preg_replace("/data:[^,]+,/i","",$base64);
$base64 = base64_decode($base64);
file_put_contents($file_name, $base64);
ソースコード
<script>
function test1(e){
var radio = $(e);
var v = radio.attr('value');
$('#res1').html(v);
}
</script>
<label class="animal_label"><input type="radio" name="animal2" value="1" onclick="test1(this)" />ネコ</label>
<label class="animal_label"><input type="radio" name="animal2" value="2" checked onclick="test1(this)" />ヤギ</label>
<label class="animal_label"><input type="radio" name="animal2" value="3" onclick="test1(this)" />カニ</label>
<div id="res1"></div>
ソースコード
<script>
/**
* ラジオボタンの選択値を指定したhidden要素にセットする
* @param e ラジオボタン要素
* @param hdd_slt hidden要素のセレクタ
*/
function setHidden(e,hdd_slt){
var radio = $(e);
var v = radio.attr('value');
$(hdd_slt).val(v);
}
</script>
<input id="animal1" type="hidden" value="2" />
<label class="animal_label"><input type="radio" name="animal1" value="1" onclick="setHidden(this,'#animal1')" />ネコ</label>
<label class="animal_label"><input type="radio" name="animal1" value="2" checked onclick="setHidden(this,'#animal1')" />ヤギ</label>
<label class="animal_label"><input type="radio" name="animal1" value="3" onclick="setHidden(this,'#animal1')" />カニ</label>
<script>
/**
* ラジオボタンの選択値を指定したhidden要素にセットする
* @param e ラジオボタン要素
* @param hdd_slt hidden要素のセレクタ
*/
function setHidden(e,hdd_slt){
var radio = $(e);
var v = radio.attr('value');
$(hdd_slt).val(v);
}
function refresh(){
var v = $('#animal1').val();
$("[name='animal1']").val([v]);
}
</script>
<input id="animal1" type="number" min="0" max="4" value="2" />
<input type="button" class="btn btn-primary btn-sm" value="リフレッシュ" onclick="refresh()" /><br>
<label class="animal_label"><input type="radio" name="animal1" value="1" onclick="setHidden(this,'#animal1')" />ネコ</label>
<label class="animal_label"><input type="radio" name="animal1" value="2" checked onclick="setHidden(this,'#animal1')" />ヤギ</label>
<label class="animal_label"><input type="radio" name="animal1" value="3" onclick="setHidden(this,'#animal1')" />カニ</label>
/**
* name属性名とvalueを指定してラジオボタンにチェックを入れる
* @param name ラジオボタンのname属性名
* @param value value属性の値
* @returns
*/
function _putCheckedToRadio(name,value){
var slt = "[name='" + name +"'][value='" + value + "']";
$(slt).prop({'checked':true});
}