Skip to content

Commit

Permalink
feat(showheaderavatar): support config showHeaderAvatar
Browse files Browse the repository at this point in the history
  • Loading branch information
weirui88888 committed Dec 15, 2023
1 parent 4ccea0c commit 6a4972e
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 4 deletions.
1 change: 1 addition & 0 deletions src/defaultCanvasSetting.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ const defaultCanvasSetting = {
headerPaddingTop: 100,
headerPaddingBottom: 30,
// avatar
showHeaderAvatar: true,
headerAvatarSize: 80,
headerAvatarBorderWidth: 4,
headerAvatarBorderColor: '#ffcc00',
Expand Down
11 changes: 9 additions & 2 deletions src/draw.js
Original file line number Diff line number Diff line change
Expand Up @@ -233,13 +233,20 @@ class Drawer {

async drawAvatar() {
const { ctx, avatar: avatarSrc, barWatcher, headerCpu } = this
const {
showHeaderAvatar,
headerAvatarBorderWidth,
headerAvatarBorderColor,
avatarRadius,
avatarCenterPointX,
avatarCenterPointY
} = headerCpu.calculateApplyAvatar
if (!showHeaderAvatar) return this
// DONE STEP3
barWatcher.setTotal(4)
barWatcher.update(3, {
step: 'Drawing Avatar'
})
const { headerAvatarBorderWidth, headerAvatarBorderColor, avatarRadius, avatarCenterPointX, avatarCenterPointY } =
headerCpu.calculateApplyAvatar
const avatar = await loadImage(avatarSrc)
ctx.save()
ctx.beginPath()
Expand Down
13 changes: 11 additions & 2 deletions src/headerCpu.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@ class HeaderCpu {
}

get calculateApplyAvatar() {
const { headerAvatarSize, headerAvatarBorderWidth, headerAvatarBorderColor } = this.canvasHeaderSetting
const { showHeaderAvatar, headerAvatarSize, headerAvatarBorderWidth, headerAvatarBorderColor } =
this.canvasHeaderSetting
return {
showHeaderAvatar,
avatarSize: headerAvatarSize,
avatarRadius: headerAvatarSize / 2,
headerAvatarBorderWidth,
Expand Down Expand Up @@ -100,8 +102,15 @@ class HeaderCpu {
}

get calculateAvatarCenterPointPosition() {
const { headerAlign, headerPaddingTop, headerAvatarSize, headerAvatarBorderWidth } = this.canvasHeaderSetting
const { showHeaderAvatar, headerAlign, headerPaddingTop, headerAvatarSize, headerAvatarBorderWidth } =
this.canvasHeaderSetting
const { x, canvasWidth } = this
if (!showHeaderAvatar) {
return {
avatarCenterPointX: canvasWidth / 2,
avatarBottomY: headerPaddingTop
}
}
switch (headerAlign) {
case 'left':
return {
Expand Down
1 change: 1 addition & 0 deletions src/themes/default/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ You can use the generated images anywhere, such as on social media, resumes, jou
headerPaddingTop: 100,
headerPaddingBottom: 30,
// avatar
showHeaderAvatar: true,
headerAvatarSize: 80,
headerAvatarBorderWidth: 4,
headerAvatarBorderColor: '#ffcc00',
Expand Down

0 comments on commit 6a4972e

Please sign in to comment.