[解決済み] エラーを修正する方法。Fontconfig エラー。デフォルトの設定ファイルを読み込むことができません
2022-02-17 10:14:54
質問
client.on('guildMemberAdd', async (member) => {
const channel = member.guild.channels.cache.find(
(channel) => channel.name === 'general'
);
if (!channel) return;
const canvas = Canvas.createCanvas(700, 250);
const ctx = canvas.getContext('2d');
const background = await Canvas.loadImage('./wallpaper.jpg');
ctx.drawImage(background, 0, 0, canvas.width, canvas.height);
ctx.strokeStyle = '#ffffff';
ctx.strokeRect(0, 0, canvas.width, canvas.height);
// Select the font size and type from one of the natively available fonts
ctx.font = '60px ArialCE.ttf';
// Select the style that will be used to fill the text in
ctx.fillStyle = '#ffffff';
// Actually fill the text with a solid color
ctx.fillText(member.displayName, canvas.width / 2.5, canvas.height / 1.8);
ctx.beginPath();
// Start the arc to form a circle
ctx.arc(125, 125, 100, 0, Math.PI * 2, true);
// Put the pen down
ctx.closePath();
// Clip off the region you drew on
ctx.clip();
const avatar = await Canvas.loadImage(
member.user.displayAvatarURL({ format: 'jpg' })
);
// Move the image downwards vertically and constrain its height to 200, so it's a square
ctx.drawImage(avatar, 25, 25, 200, 200);
const attachment = new Discord.MessageAttachment(
canvas.toBuffer(),
'welcome-image.png'
);
channel.send(`Welcome ${member.toString()} to the server!`, attachment);
});
discord.jsを使用してdiscord botを作っています。キャンバスのウェルカムメッセージを作りたかったのですが、作ってみると、キャンバス上の文字以外はすべて動作していました。それはすべてこのようなものでした。
で、googleでいろいろ検索してみたのですが、解決策が見つかりませんでした。 エラーは(Fontconfig error: Cannot load default config file)です。 私のシステムにはフォントがないということなのでしょうが、どのようにフォントを追加すればいいのでしょうか。私はrepl.itを使用しています。
解決方法は?
node-canvas 2.0+で動作するはずです。
Canvas.registerFont
メソッドを使用します。
https://github.com/Automattic/node-canvas/#registerfont
システムフォントとしてインストールされていないフォントファイルを使用する場合は
registerFont()
を使用して、フォントをCanvasに登録します。これは、Canvasを作成する前に行っておく必要があります。
const { registerFont, createCanvas } = require('canvas')
registerFont('./fontFolder/comicsans.ttf', { family: 'Comic Sans' })
const canvas = createCanvas(500, 500)
const ctx = canvas.getContext('2d')
ctx.font = '12px "Comic Sans"'
ctx.fillText('Everyone hates this font :(', 250, 10)
例
TTFファイルは異なるフォント名を持つので、唯一の
'Roboto'
でないと、うまくいきません。
registerFont('./fonts/Roboto-Medium.ttf', {family: 'Roboto'})
fontNameを
'Medium 28px Roboto'
.うまくいきません。
ctx.font = '12px Roboto Medium';
関連
-
[解決済み】別のjsファイル内でJavaScriptの関数を呼び出す
-
[解決済み] NodeJSの使用中にError: listen EADDRINUSEを修正する方法は?
-
[解決済み] TypeScript getting error TS2304: cannot find name ' require'.
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] sudoを使わずにnpmがエラーを投げるのを修正する方法
-
[解決済み] ページロード後にJavaScriptを実行させるには?
-
[解決済み] NVMを使用して、デフォルトのノードバージョンを設定するにはどうすればよいですか?
-
[解決済み] Node.JSを使用して、JSONファイルを(サーバー)メモリに読み込むにはどうすればよいですか?
-
[解決済み] Node.jsで「ReferenceError: primordials is not defined」を修正する方法
-
[解決済み] Node.jsで "Cannot find module "エラーを解決するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】パッシブイベントリスナー内部でpreventDefaultができない
-
[解決済み】TypeError: 'undefined'はオブジェクトではありません。
-
[解決済み] Uncaught TypeError: 未定義のプロパティ 'top' を読み込めない
-
[解決済み] 解決済み】clearInterval()が動作しない [重複] [重複]
-
[解決済み】Google Conversionsが動作しない - スクリプトが読み込まれない
-
[解決済み】「Uncaught TypeError: Chromeで "Illegal invocation "が発生する。
-
[解決済み】getElementByIdはnullを返す?[クローズド]
-
[解決済み】 Uncaught Error: Invariant Violation: 解決済み】 Uncaught Error: Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function but got: object.
-
[解決済み] Uncaught (in promise) TypeError: フェッチに失敗してCorsエラー
-
[解決済み】Javascript、[オブジェクトHTMLInputElement]を表示中。]