portrait.js 690 B

1234567891011121314151617181920212223242526
  1. export function genTextPortrait(name) {
  2. if (!name) {
  3. return ''
  4. }
  5. name = name.substring(0, 1)
  6. let cvs = document.createElement('canvas')
  7. cvs.setAttribute('width', 100)
  8. cvs.setAttribute('height', 100)
  9. let ctx = cvs.getContext('2d')
  10. ctx.fillStyle = transColor(name)
  11. ctx.fillRect(0, 0, 100, 100)
  12. ctx.fillStyle = 'rgb(255,255,255)'
  13. ctx.font = 50 + 'px Arial'
  14. ctx.textBaseline = 'middle'
  15. ctx.textAlign = 'center'
  16. ctx.fillText(name, 50, 50)
  17. return cvs.toDataURL('image/png', 1)
  18. }
  19. function transColor(name) {
  20. var str = ''
  21. for (var i = 0; i < name.length; i++) {
  22. str += parseInt(name[i].charCodeAt(0), 10).toString(16)
  23. }
  24. return '#' + str.slice(1, 4)
  25. }