jsは文字の顔写真の生成コードを実現します。


canvasを使って文字を描けばいいです。

function gen_text_img(size, s) {
 let colors = [
 "rgb(239,150,26)", 'rgb(255,58,201)', "rgb(111,75,255)", "rgb(36,174,34)", "rgb(80,80,80)"
 ];
 let cvs = document.createElement("canvas");
 cvs.setAttribute('width', size[0]);
 cvs.setAttribute('height', size[1]);
 let ctx = cvs.getContext("2d");
 ctx.fillStyle = colors[Math.floor(Math.random()*(colors.length))];
 ctx.fillRect(0, 0, size[0], size[1]);
 ctx.fillStyle = 'rgb(255,255,255)';
 ctx.font = size[0]*0.6+"px Arial";
 ctx.textBaseline = "middle";
 ctx.textAlign = "center";
 ctx.fillText(s,size[0]/2,size[1]/2);

 return cvs.toDataURL('image/jpeg', 1);
}
いくつかのブラウザのテキストは水平に中央に置くことができません。解決策はまだ見つけられません。
 
知識点補充:フロントエンドの結び目:中国語で色を変えます。名前によって自動的に顔写真を生成することを実現します。
1、需要
    プロジェクトに必要なものがあります。プロフィールと名前リストを表示することを要求します。

顔写真は名前の最初の文字と背景色から生成され、文字の色は白色で、背景は自動的に生成されます。
2、分析
名前の画像は自動的に生成されるので、背景の色が違っています。いくつかの方法を考えてみてもいいです。
     1)乱数を使って16進数文字列を自動的に生成し、顔写真の背景色とします。
     2)名前の最初の文字を取得し、16進数文字列に変換し、顔写真の背景色とします。
ここではなぜbase 64を色の値に変換しないのかという友達がいます。ここでは小編もテストしました。base 64を通じてコードを変換した後の値は多くFに変換されました。色に変換する時、値を取るのは無効です。スクリーンショットは以下の通りです。

だからここではこのような方法は使いません。
第一の方法は簡単ですが、コントロールできないです。だから、第二の方式を採用します。
3、実現する

//          ,   16     
const { name } = this.props;
let firstName = name.substring(1, 0);
 
tranColor = (name) => {
 var str ='';
 for(var i=0; i<name.length; i++) {
  str += parseInt(name[i].charCodeAt(0), 10).toString(16);
 }
 return '#' + str.slice(1, 4);
}
const bgColor = this.tranColor(name)
これにより、16進数の合法的な色文字列が生成されます。異なる透明度を設定する必要があれば、1桁多く取ることができます。 str.slice(1,5)は、ここで16進数に変換されますので、ここで上位3位(1~4位)だけを取ります。
4、結果
変換結果は以下の通りです

効果:

名前を見ることができます。背景の色も同じです。乱数よりずっといいです。
締め括りをつける
ここでは、jsが文字の顔写真の生成コードを実現するための文章を紹介します。jsの文字の顔写真の内容については、以前の文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。