### 画像バリデーションの拡張子
一昔前は、画像の拡張子といえば、jpeg,jpg,gif,pngのみが多かった印象がありますが(自分だけ?)、Laravel6.xのimageのバリデーションでは「jpg、png、bmp、gif、svg、webp」となっております。そのまま、jpeg,jpg,gif,pngに加えて、bmp,svg, webpも採用するかについて考えたいと思います。
### SVGとは?
SVGとは、Scalable Vector Graphicsの略です。
名称からどのような画像かほぼ想像がつきますが、念の為コードを書きながら特徴を見てみましょう。
<svg width="160" height="160">
<rect x="0" y="0" width="160" height="160" fill="skyblue"/>
<rect x="40" y="40" width="80" height="80" fill="tomato"/>
</svg>

### view box
<svg width="160" height="160">
<rect x="0" y="0" width="160" height="160" fill="skyblue"/>
<rect x="40" y="40" width="80" height="80" fill="tomato"/>
</svg>
<svg width="160" height="160" viewBox="0 0 320 320">
<rect x="0" y="0" width="160" height="160" fill="skyblue"/>
<rect x="40" y="40" width="80" height="80" fill="tomato"/>
</svg>

<svg width="160" height="160">
<rect x="0" y="0" width="160" height="160" fill="skyblue"/>
<rect x="20" y="20" width="30" height="30" fill="#08c"/>
<rect x="65" y="20" width="30" height="30" fill="rgb(255, 0, 0, 4)"/>
<rect x="110" y="20" width="30" height="30" fill="hsla(120, 40%, 40%, .4)"/>
</svg>

<svg width="160" height="160">
<rect x="0" y="0" width="160" height="160" fill="skyblue"/>
<rect x="20" y="20" width="30" height="30" fill="#08c"/>
<rect x="65" y="20" width="30" height="30" fill="rgb(255, 0, 0, 4)"/>
<rect x="110" y="20" width="30" height="30" fill="hsla(120, 40%, 40%, .4)"/>
<rect x="20" y="65" width="30" height="30" fill="none" stroke="olive" stroke-width="2"/>
<rect x="65" y="65" width="30" height="30" fill="none" stroke="olive" stroke-dasharray="10"/>
<rect x="110" y="65" width="30" height="30" fill="none" stroke="olive" stroke-width="2" stroke-dasharray="10, 2"/>
</svg>

<svg width="160" height="160">
<rect x="0" y="0" width="160" height="160" fill="skyblue"/>
<rect x="20" y="20" width="30" height="30" style="fill:#08c; stroke:#eee; stroke-width:3;"/>
</svg>

<svg width="160" height="160">
<defs>
<style>
.my-box {
fill: pink;
}
</style>
</defs>
<rect x="0" y="0" width="160" height="160" fill="skyblue"/>
<rect x="20" y="20" width="30" height="30" style="fill:#08c; stroke:#eee; stroke-width:3;"/>
<rect x="60" y="20" width="30" height="30" class="my-box"/>
</svg>

<svg width="160" height="160">
<rect x="0" y="0" width="160" height="160" fill="skyblue"/>
<circle cx="80" cy="80" r="40" fill="gold" />
</svg>

### Photoshop、IllustratorのSVG、bmpの扱い
photoshopではbmpはありますが、SVGはありません。

一方、ベクターなのでIllustratorはSVGの取り扱いがあります。

### 結論
卒業写真など、オフィシャルなものであれば写真オンリーでしょうが、compassなどを見るとjpegの写真は殆どの見ないくらい写真以外をプロフィール画像にすることは浸透しているため、bmp,svg, webpもバリデーションに加えて良いでしょう。
プログラミングの義務教育が始まるので、近い未来、卒業写真にベクター画像を載せる学校が出てくるかもしれませんね。