クラウド実行時にLEDマトリクスの表示フォントが適用されない
ブラウザ実行時にはフォント適用されますが、クラウド実行時にフォントが適用されません。
例えば「Nikukyu」でのカタカナは適用されるのですが、下記のサンプルでは数字が「Roboto」でのフォントで表示されません。
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" />
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300&display=swap" rel="stylesheet">
<style>
body{
display:flex;
flex-direction:column;
}
canvas{
width:32px;
margin-bottom:5px;
}
</style>
<script>
WebFont.load({
google: {
families: ['Roboto'],
},
loading: function() {
console.log('loading');
},
active: function() {
console.log('active');
},
inactive: function() {
console.log('inactive');
},
fontloading: function(familyName, fvd) {
console.log('fontloading', familyName, fvd);
},
fontactive: function(familyName, fvd) {
console.log('fontactive', familyName, fvd);
// Obniz用
const deviceName = 'MatrixLED_MAX7219'; // デバイス名
const width = 8*4; // LEDマトリクスの幅
const height = 8; // LEDマトリクスの高さ
const brightness = 0; // LED明るさ 1~15
const speed = 60; // 文字の流れるスピード
const centerfont = '14px "Roboto"'; // フォント
console.log("表示開始")
//////////////////////////////////////////////////////
// 画面表示
//////////////////////////////////////////////////////
const display = (text) => {
const obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async () => {
obniz.resetOnDisconnect(false);
obniz.display.print("表示中");
// Obnizの配線
// 上部のLEDマトリクス
const matrixTop = obniz.wired(deviceName, { clk:0, cs:1, din:2, gnd:3, vcc:4});
// 下部のLEDマトリクス
const matrixBottom = obniz.wired(deviceName, { clk:5, cs:6, din:7, gnd:8, vcc:9});
// LEDマトリクスの初期設定
matrixTop.init(width, height);
matrixTop.brightness(brightness);
matrixBottom.init(width, height);
matrixBottom.brightness(brightness);
// //LEDマトリクスに表示させるCanvasを生成
const canvasTop = obniz.util.createCanvasContext(width, height);
const canvasBottom = obniz.util.createCanvasContext(width, height);
// 上部LEDマトリクスに表示
canvasTop.fillStyle = "black";
canvasTop.fillRect(0, 0, width, height);
canvasTop.fillStyle = "white";
canvasTop.font = centerfont;
canvasTop.textBaseline = "top";
canvasTop.fillText(text, 0, -2); // 文字が上半分だけ表示されるように位置調整
matrixTop.draw(canvasTop);
// 下部LEDマトリクスに表示
canvasBottom.fillStyle = "black";
canvasBottom.fillRect(0, 0, width, height);
canvasBottom.fillStyle = "white";
canvasBottom.font = centerfont;
canvasBottom.textBaseline = "top";
canvasBottom.fillText(text, 0,-10); // 文字が下半分だけ表示されるように位置調整
matrixBottom.draw(canvasBottom);
if (typeof done === "function") {
console.log("done");
done();
}
}
}
display("123");
},
fontinactive: function(familyName, fvd) {
console.log('fontinactive', familyName, fvd);
}
});
</script>
</head>
<body>
<div id="obniz-debug"></div>
<div style="font-family: 'Roboto';">123</div>
</body>
</html>
0
-
下記のリンクと同じ問題かと思います、現象は同じでしょうか。ご参照お願いいたします。
https://forum.obniz.com/topic/456/obniz%E3%82%A2%E3%83%97%E3%83%AA%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E5%AE%9F%E8%A1%8C%E6%99%82%E3%81%AEcanvas%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E3%81%AE%E9%81%A9%E7%94%A8%E3%81%AE%E4%B8%8D%E5%85%B7%E5%90%88%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A60
サインインしてコメントを残してください。
コメント
1件のコメント