使い捨てコード

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Icon Matrix</title>
    <!-- Font Awesomeのスタイルシートのリンクを追加 -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.3.3/html2canvas.min.js"></script>
    <style>
        #iconMatrix {
            white-space: nowrap; /* アイコンが新しい行に折り返されるのを防ぎます */
            line-height: 0; /* アイコン間の垂直スペースを削除 */
            padding-top: 50px; /* アイコンがはみ出ないように上部にパディングを追加 */
        }
        .icon {
            display: inline-block; /* アイコンをインラインブロック要素として設定 */
            transform-origin: 50% 100%; /* 変換の原点をアイコンの下部に設定 */
            vertical-align: bottom; /* 足元を揃える */
        }
    </style>
</head>
<body>

<div id="iconMatrix"></div>

<script>
const numberOfIcons = 10; // アイコンの数を10に設定
const container = document.getElementById("iconMatrix");

for (let i = 0; i < numberOfIcons; i++) {
    let icon = document.createElement("i");
    icon.className = "fas fa-male icon"; // iconクラスを追加
    icon.style.color = "darkblue";
    
    // scale変換を使用して、アイコンを徐々に大きくします
    let scale = 1 + i * 0.5; // または、適切なスケーリングファクターに調整してください
    icon.style.transform = `scale(${scale})`;
    
    // marginを動的に設定して、アイコン間の間隔を調整します
    let margin = i * 15; // または、適切なマージン値に調整してください
    icon.style.marginRight = `${margin}px`; // 右マージンのみ設定
    
    container.appendChild(icon);
}

// DOMの描画が完了したら実行される関数
window.onload = function() {
    html2canvas(container, {scale: 2}).then(canvas => { // scaleオプションで出力画像の解像度を高める
        // canvasをPNGとして保存する
        let link = document.createElement('a');
        link.download = 'iconMatrix.png';
        link.href = canvas.toDataURL()
        link.click();
    });
};
</script>

</body>
</html>

男女のアイコンを整列させる

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Icon Matrix</title>
    <!-- Font Awesomeのスタイルシートのリンクを追加 -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.3.3/html2canvas.min.js"></script>
</head>
<body>

<div id="iconMatrix"></div>

<script>
const matrixSize = 5;
const container = document.getElementById("iconMatrix");

for (let i = 0; i < matrixSize; i++) {
    for (let j = 0; j < matrixSize; j++) {
        let icon = document.createElement("i");
        if ((i + j) % 2 === 0) {
            icon.className = "fas fa-male";
            icon.style.color = "darkblue";
        } else {
            icon.className = "fas fa-female";
            icon.style.color = "darkred";
        }
        icon.style.margin = "2px";
        container.appendChild(icon);
    }
    container.appendChild(document.createElement("br"));
}

// DOMの描画が完了したら実行される関数
window.onload = function() {
    html2canvas(container).then(canvas => {
        // canvasをPNGとして保存する
        let link = document.createElement('a');
        link.download = 'iconMatrix.png';
        link.href = canvas.toDataURL()
        link.click();
    });
};
</script>

</body>
</html>