Canvasについて語ろう
>>221
どうもありがとうございます。
ちょっと動作確認してきます。
本当にありがとうございます。 >>221
追記です。説明不足でした。
firefoxアドオンの開発のためにお聞きしました。
<overlay id="myOverlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:html="http://www.w3.org/1999/xhtml">
<statusbar id="status-bar">
<scrollbox width="1" height="1">
<html:canvas id="myCanvas" display="none" />
</scrollbox>
</statusbar>
</overlay>
XULを使用しています。
ボタンを押すことで→キャプチャ+色の変換→出力
を考えています。どうにかして上記プログラムと組み合わせ?
を行いたいのですができていません。
参考にさせていただきます。ありがとうございます。 ★★★チベットの独立は日本の核心的利益である★★★
http://jbbs.livedoor.jp/bbs/read.cgi/study/3729/1226114724/78
¥¥¥¥¥¥¥『万有サロン』書き込み大賞・総額100万円¥¥¥¥¥¥¥¥¥¥¥¥
この掲示板に優秀な書き込みをして、総額100万円の賞金をゲットしよう!(*^^)v
万有サロン
http://jbbs.livedoor.jp/study/3729/
書き込み大賞の詳細
http://jbbs.livedoor.jp/bbs/read.cgi/study/3729/1069922074/78-
書き込み大賞の詳細(資料倉庫内)
http://www2.tba.t-com.ne.jp/a-z/omake/banyu/taisho.htm
また、あらゆる疑問に関する質問を、携帯電話やメールでも受け付けています。
電話番号 080-4437-4187
メール aaa-zzz@tba.t-com.ne.jp
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ パワハラ犯罪にたいする刑事罰(※本投稿のコピペ歓迎です)
人事原則
1 現行法では、社員が仕事を怠けたり、能力不足、就業規則違反、目標を達成できなくても解雇をしたり叱責することは違法です。どんな駄目社員、嘘つき社員、怠け者も定年まで解雇が違法なのが現行の正社員制度です。
2 パワハラは社風にあわない社員、成績の振るわない社員を自主退職に追い込む言わば人事的措置として用いられることが多い。
※違法な解雇の和解金相場は、労働審判で3ヶ月、通常裁判で1年以上の報酬、さらに社員が和解を拒めば復職が可能です。弁護士への着手金は12〜15万円+20%の和解金、和解拒否なら20〜50万円程度。
人事部・ホットライン・御用組合へ直訴
メリット: 一時的緩和や人事異動
デメリット: 役員へ情報筒抜け、危険分子の烙印(情報漏洩がホットライン直訴者に多いのは人事部の常識)、パワハラ放置で自主退職に追い込まれる
民事訴訟・調停・労働審判
メリット: 損害賠償
デメリット: 裁判費用、解雇措置、民事不介入で刑事事案化を阻止、長期係争、パワハラ上司の継続雇用
刑事告訴
メリット: 1パワハラ上司の解雇・懲戒、または2多額の和解金、1と2どちらでも被害者の雇用は維持
デメリット: 人事異動(出世コースから外れる)
◎録音は一方の当事者が取る限り合法です。※加害者に録音の同意を求める必要はありません。
◎告訴受理後の和解金は加害者の資産・収入に応じて変えてください。犯罪者の昨年の年収の半額程度×最大懲役年数が妥当です。
◎パワハラの被害についての告訴は1侮辱罪2脅迫罪3強要罪4威力業務妨害罪5傷害罪の順序で行ってください。警察・検察の協力(犯罪者の自宅・職場の強制捜査、留置所勾留)により罪の立証が楽になります。
◎刑事告訴した社員を解雇したり処遇面で著しい差別を行うことはないでしょうが、出世や管理職以上の昇進の可能性はあきらめるべきでしょう。
◎刑事告訴は民事訴訟と違って裁判による被害者への2次被害にありません。検察庁が被害者に代わって訴えをおこすので、無料で、時間と手間も告訴状をかくことと音声録音を残すだけです。
◎和解契約(公正証書・即決和解)では告訴した事実は秘匿事項となります。犯罪者が秘密保持契約を違反した場合の損害賠償金は、最低5000万円〜にしましょう。 whammy.jsというライブラリが面白い
canvasからwebm動画に変換できる >>234
すげーけど設定項目が多すぎ&分かりにくくて頭がパンクしたw
あとやっぱ各ブラウザによる不安定さは何時までもネックやね やばい・・
Uint8Array+blob+createObjectURLが優秀すぎる
base64encodeせずに音を出せたぜ すみません。スレ違いだとは思いますがSVGについて教えてください。
フチ付きの二つの図形を結合させたいのですがHTML5のSVGで可能でしょうか?
可能でしたら解説サイトなど教えていただけないでしょうか? すみません。スレ違いだとは思いますがSVGについて教えてください。
フチ付きの二つの図形を結合させたいのですがHTML5のSVGで可能でしょうか?
可能でしたら解説サイトなど教えていただけないでしょうか? 右クリックからリンク先のURLをポップアップで表示するChromeの拡張機能を作っています。
アラートではリンク先のURLが表示されるのですが、ポップアップではURLを表示することができませんでした。
また、ポップアップに文字を書き込むことを試したのですが何も表示されませんでした。
popup.htmlに別のjsファイルを読み込むようにしないとダメなのでしょうか?
function popUp(info) {
alert(info.linkUrl);
chrome.windows.create({
"url":"popup.html",
"type":"popup"
},function(win){win.document.write("abc")});
}
chrome.contextMenus.create({
"title": "ポップアップを表示",
"type": "normal",
"contexts": ["link"],
"onclick":popUp
}); あげるならさjsdo.itだかなんかのカヤックが運営するあそこにあげてよ 見てきたけどwonderflみたく左側にコード出るのかよ
俺のだと嫌がらせになるぜ〜 コード管理大変そうなソースだな
改行とかあるあたりコンパイルしたってわけでもなさそうなのに
こんなコード書いてたら自分じゃ途中でわけわからなくなっちまうで 少しはソースコードがましになってるwww
がやはり何をやってるのかさっぱりわからん そのサイトで無改編のforkだけしてるやつなんなの 有用性のあるサイトが全くないよな。
え、これフラッシュじゃないの? というくらいのカッコいいサンプルサイトとかないのかな。 みなさんのおかげでHotCodeに食い込みました
ありがとうございます>< じゃがりきんって人は数学者かなにか?
何者なんだ・・ チョン大でユークリッド幾何教えてるって昔オフで言ってた 大きな画像をcanvasに読み込んで縮小表示するとすげージャギります。
解決策ないですかね?
<img>タグで読み込んだ画像を縮小表示するときは、アンチエイリアスが効いて綺麗に表示されるのに…。 等倍で読み込む→getImageData→自前縮小→put >>259
レスありがとうございます。
canvasの drawImage() を使ってリサイズせずに、
別の方法で画像をリサイズしてからcanvasにはリサイズ後の画像を等倍で描画しろ、ってことですね。
自前でリサイズ処理を実装するのが難しそうだ…。
ブラウザのcanvas実装が進化して、綺麗にリサイズできるようになる日が来るのを待ちますw drawImage()で縮小する方法として、
「いったん目的の画像と元画像の中間の大きさの画像を生成する」
っていう段階的にリサイズする手があるみたいですね。
ジャギー発生の条件が「画像の縮小率が 50% を下回る」ということらしいので、
段階的に縮小して50%を下回らないようにすればジャギらないようです。
Canvas drawImage() で画像を縮めすぎるとギザギザする問題を解消する
http://jsdo.it/21f/nvIM そもそも50%以下でジャギるって仕様はどうなってんだ
バイリニア(周囲4マスしか参照しない)か? >>265
ザックリしか見てないけど
function ruup()などの関数名がイカス 詳しい方、おしえてください。当方、canvas初心者です。
canvasに4つの四角を描くプログラムを書いたのですが、
なぜか、4つめの枠線が薄くなります。
ソースコードを以下に上げたので、ご教示ください。m(_ _)m
ttp://sandbox323.wiki.fc2.com/wiki/canvas-test stroke()はrect()呼び出した後に毎回呼び出さず、最後に一回だけ呼び出せばいい >>269
レスありがとうございます。
/* 四角を描く */
ctx.strokeStyle = 'rgb(255, 0, 0)'; //赤
for ( var key in coordinates ) {
ctx.rect( coordinates[key].x, coordinates[key].y, 25, 25);
}
ctx.stroke();
としてみたら、4つとも同じ色の枠線になったのですが、
なぜか少し薄い赤です。
それで、当てずっぽうですが、
/* 四角を描く */
ctx.strokeStyle = 'rgb(255, 0, 0)'; //赤
for ( var key in coordinates ) {
ctx.rect( coordinates[key].x, coordinates[key].y, 25, 25);
}
ctx.stroke();
ctx.stroke();
とstroke()を2回繰り返したら、4つとも普通の赤になりました。
自分のブラウザ(chrome最新版)がおかしいんでしょうか? Canvas Fingerprintingはクッキーより怖いのか技術的に調べてみた
ttp://techracho.bpsinc.jp/morimorihoge/2014_07_29/18555 幾何学の図形を描くのにCanvasは適していますか。
他にHTMLドキュメントで表現できる方法はありますか。
SVGのほうが最適でしょうか。 SVGのほうはHTMLと同じDOM操作で描くというより組み立てる感じに近い
fabric.jsってライブラリがcanvasとsvg両方に対応してる SVGの最大の強みはスケーリング変えても画質の損失が無い事、
画像の要素の一部を移動や拡大とかだとその属性の変更で済んでしまう事
canvasの場合全面書き換えする必要がある
あとSVGはIllustratorやInkscapeなどを使用して事前に作成(外部ファイル化)が可能
難点といえば複雑な図形では描画に少し時間がかかる点か?
しかしこれはcanvasも似たようなものか
どちらもjpegやpngなどラスター画像を組み込む事も出来るので全てを描画する必要は無い >>274-276
教えてくださってどうも有難うございました。
たいへん参考になりました。
とりあえずinkscapeを使って描き、SVGで出力する方法でやってみます。 arcメソッドを使う場合はbeginPathもclosePathもいらないと思うんですが、使う理由は何ですか?
arcメソッドってパス関係ないと思うんですけど。
ほとんどのサンプルコードには使われているんですがこれらは間違っていると思うんです arcだけしか使わない場合ならmoveToは不要だと思うんですよ >>279
注意: fill メソッドがと呼ばれるときはどんな開いている図形は自動的に閉じられ、 closePath メソッドを使う必要はありません。
なるほど arcで複数の円を作る場合ならmoveToはいらないという話です
矩形やlineToなどを使う場合は別です fillやstroke、closePathを呼び出すまでarcを複数回呼び出した場合、それは1つのパス、って事 真円ならいらないね
弧だけなら線と組み合わせる場合があるからいる moveToが要る要らないじゃなくて、要るとき底辺コーダーが罠に嵌らないように、ご丁寧にそういうサンプルコードが書かれてるんだよ
で、そのサンプルが伝播して『ほとんどのサンプルコードには使われている』状態になってる
大元がどこかは分かるだろ fill,stroke,closePathが不要なのはfillRect,strokeRect,clearRectだけだね ベクターグラフィックシステムの設計の根底にタートルグラフィックの考え方があります
この辺も読んでおくとよいでしょう
https://msdn.microsoft.com/ja-jp/library/gg193983(v=vs.85).aspx 左○を白と黒のグラデーションにして、右○を赤と黒のグラデーションにしたいんですが
左○が赤と黒になってしまいまして、右○のグラデーションが効いてない状態になりました
http://jsfiddle.net/cq2nLqhy/
どう直したらいいのか教えて下さい >>289
上の方でちょっと話題になってるのと関連するけど、
beginPathが無いのとfillが1度だけしか呼ばれてないから1つの図形
と見なされてる それと話題それるけどそのサイトいいね
ログインしなくても投稿できるのか こうですか?左○のグラデーションが効くようになったんですけど右○は相変わらずグラデーションが効きません
あとパフォーマンスの観点からfillを一度だけ呼びたいんですけど無理なんでしょうか?
http://jsfiddle.net/cq2nLqhy/3/ createRadialGradientの座標がどちらも一緒になってるよ
下は
var crg2 = ctx.createRadialGradient(150, 50, 10, 150, 50, 100);
かな?
あとfillでパスは閉じるのでclosePathは不要 あ、あと円グラデーションの終了点がかなり外側だから黒になり切らないね
100じゃなくて50じゃ?
var crg2 = ctx.createRadialGradient(150, 50, 10, 150, 50, 50); アドバイス受けて修正したら今度は右○は効くようになったのに左○が効かなくなりました
http://jsfiddle.net/cq2nLqhy/4/ いやだからbeginPathは要るんだってばw
http://jsfiddle.net/gLbd0frh/1/
対照性が悪いみたいでスッキリしないと思うけど なるほど、勉強になりました
グラデーションをつかうと一つずつ描画しないといけないのが難点ですね rotateで複数のグラフィックをそれぞれ中心で回転したい場合ってその数だけcanvas要素を作らないとだめですか?
http://tech.kayac.com/archive/canvas-tutorial.htmlの長方形が回転するサンプルのtranslate,rotate ,translateの後にfillRectを複数並べると
惑星が回るようになってしまいました
風車みたいなものをつくりたいんですが
http://jsdo.it/shitman/sDTZのサンプルではcanvas要素を複数用意してたのでやっぱり複数要素作らないだめですか? よくわからん。
1つのオブジェクトのパスを指定して変換かけて描画する。
の繰り返しでいいだけじゃん? >>298
save()
translate() rotate() translate()
fillRect()
restore()
translate() rotate() translate()
fillRect()
restore()
以下繰り返し
でしょ
当然rotateや2回目のtranslateの中身は変えないと全部重なるだけだが 多分そんな感じで作ったんですが最初から作りなおしたらできました。
なんで最初のが動かなかったのか原因は分かりません。
ありがとうございます translateで横に100ずらしたいのに、何故かxとyの分だけ余計にずれてます
http://jsfiddle.net/0fs1dhfj/
座標10:10に100x100の正方形を描画して、右方向に100ずらした位置に正方形を描画したいんですが
これ、正方形と正方形の間にスペースが空いてしまいます。
どうしてこうなるんでしょうか? 理解できました
translateで移動した位置が座標0:0となるんですね transformって歴史的な理由で残されてるってw3cに書いてあったけどその歴史的な理由知ってる? それを語るなら秦の始皇帝まで遡る事になるが良いかな? canvas自体そんなに歴史があるわけじゃないのに何だろうね?
アフィン変換、行列変換の事を言ってるんだろうか?
Most of the API uses SVGMatrix objects rather than this API. This API remains mostly for historical reasons.
(”APIのほとんどは、SVGMatrixは、このAPIのではなく、オブジェクトを使用します。このAPIは、歴史的な理由のために主に残る。”)
確かにtranseformメソッドを呼ぶよりscale,rotate,translateメソッドをそれぞれ呼んだほうが扱いやすい気がする cssにはskewが実装されてるのにcanvasには実装されてない
中途半端なのがtransformである
奥行きをつけるのにcssからなら楽勝だがcanvasでやると知識がないと無理 canvasを使ったお絵かきアプリのソースを捜しています。
書き出した絵を再度読み込める機能が必要です。
pngで書き出すだけなら次のようなものを見つけています。
Literally "Canvas"
http://literallycanvas.com/index.html
よろしくお願いします。 >>310
:::::::::::::::::::: ::::::::::/ ):::::::::
:::::(\::::::: / / ):::::::::::
:::::/\\ / / /ヽ::::::::::::
:::: ヽ \\ ィユ, / / / /::::::::::::::::
:::: ( \ \\ ( ^ω^) l 三 / / ):::::::::::::::
:::::::ヽ ヽ . ミヽヽ | | / 二 / /
::::::: ( \ ヽミ ヽヽ | .| + / 二 ___/ヽ
::::... /ヽ ヽ ニ ヽヽ |,,,| ┼ // ニ _______/
:::. ヽ____ ニ ヽ`l ヽ__// ニ ____ノ
ヽ___, ニ l :: ′ ニ ___ノ
ヽニ -‐ ,l :: __ ≡ __ノ+ ┼ * :::::::::
ヽ---'''ヽ、 ,,,;''''='''''__ + ┼ + .::::::::::
:::::... + ┼ + EEi''!Q.Qー-、___'''''ー-、 :....::::::::::::
:::::::.... + ┼ EEi. Q. Q +'''ヽ ..:...::::::::::::::::::::
:::::::::::::::::..... + EEi. Q. Q ┼ :....:::::::::::::::::
::::::::::::::::::::....: + * EEi Q Q .....:::::::::::::::::
::::::::::::::::::::::::::... + EE! Q @.....:::::::
::::::::::::::::::....::....::. カカ @...::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
私は不死鳥ハメ鳥。何度dat落ちしても蘇る。
世界中にあふれるさまざまなハメ撮り動画・画像を知っている。
でもただひとりの不幸な男が欄検眼段にHITしてしまい、
その男と一緒に滅びていった女達のことを私は忘れない。
私の名は不死鳥ハメ鳥、ラーミアの末裔。 描かれたcanvasをSNSに簡単にアップできるようなライブラリなどはありますか?
canvas部分をクリック→ポップアップでtwなどのアイコンリスト→
選択→canvasを画像として投稿、のような感じにしたいです。 普通にcanvasを右クリで画像を保存してからアップしたほうがいんじゃね? >>314
313ですが、それを一連的に行いたいのです。 var cvs = document.createElement('canvas');
cvs.width = 300;
cvs.height = 300;
ctx = cvs.getContext('2d');
var bcnt = 10;
var wblur = 0.03;
var hblur = 50;
ctx.fillStyle = 'rgba(0,0,0, '+(0.5/bcnt)+')';
for(var i=0;i<bcnt;i++) {
ctx.beginPath();
ctx.moveTo( 20, cvs.height/2 );
ctx.arc( 20, cvs.height/2, 200+hblur/bcnt*i, Math.PI*(1.9-wblur/bcnt*i),Math.PI*(0.1+wblur/bcnt*i));
ctx.closePath();
ctx.fill();
}
物体に落ちる影ではなく伸びる影を表現したいのですが、重ねてぼかすのではループを回すだけ負荷が掛かるので、ループを避けたいのですが何か良い方法は無いでしょうか
上の例のbcntを減らすとぼやけ方に段差が出来てしまうのですが、少ない描画指示でbcnt=10程度のぼやけ方を表現したいのです
よろしくおねがいします。 ホームページで友達が稼げるようになった情報とか
⇒ http://asaswq3wq.sblo.jp/article/181819223.html
興味がある人だけ見てください。
I0DIFOR3EF 【環境】
OS:Linux ブラウザ:Chromium バージョン 57.0.2987.98
【コード】
<canvas id="canvasA" width="640" height="480">
キャンバスA
</canvas>
<script>
var context = document.getElementById('canvasA').getContext('2d');
var image1 = new Image();
image1.src = 'myphoto.png';
image1.onload = function(e){
context.drawImage(image1, 0, 0, 320, 240);
};
</script>
<canvas id="canvasB" width="640" height="480">
キャンバスB
</canvas>
<script>
var context = document.getElementById('canvasB').getContext('2d');
var image2 = new Image();
image2.src = 'myphoto.png';
image2.onload = function(e){
context.drawImage(image1, 0, 0, 640, 480);
};
</script>
とすると、キャンバスBのほうに画像が重なって表示されて
キャンバスAには表示されなくなっちゃうのです。
canvas要素のid名がまったく意味をなさないというか・・・
何か大きなミスを犯しているでしょうか? >>321
var contextが別のものであるかのように書いてるけど1つめのcontextは再宣言で亡くなってる
varじゃなくてlet/constで宣言してればちゃんとこれでちゃんとエラー吐いてくれるからvarをやめたほうがいい >>322
ご指摘いただけて有り難いです。
imageはimage1とimage2に分けたのにcontextは重複させてしまっていました。
それからvarはブロックスコープを持たず、letやconstなら持つということも
知りました。新しい仕様なんでしょうか。
教えてくださってどうも有難う御座いました。