포스팅용 첨부 이미지 생성기 - 2
이번에는 이 프로젝트에서 사용중인 git 브랜치 전략과 지난번 이후에 구현한 기능들에 대해서 정리하려 합니다.
git 브랜치 전략
저는 git-flow 전략을 참고하여, master, develop, feature 브랜치만을 운영하기로 하였습니다.
브랜치 전략을 체험 위한 용도로 구상하였습니다.
-
새로운 기능 추가
- github에 이슈 등록
- develop 브랜치에서 feature 브랜치 생성
- 브랜치명 : feature/[이슈번호]-[구현기능]
- 예시 : feature/100-download-image
-
기능 개발 완료
- feature 브랜치를 develop 브랜치로 pull request
- 머지 후, feature 브랜치는 삭제한다.
- 관련이슈 close 처리
-
배포 시
- develop 브랜치를 marster 브랜치로 pull request
- 머지 시점에서 Tag 부여
- github pages를 사용중이므로, 자동으로 변경 됨.
- 기타
- commit시 message에 이슈번호 언급(#이슈번호)
- 이슈창에서 자신을 언급한 커밋내역 볼 수 있음.
- 이슈에 맞는 커밋내역을 찾기가 편할 것 같음.
canvas에서 SVG로 변경
SVG는 백터(vector) 이미지를 표현하기 위한 포맷으로 w3c에서 만든 백터 이미지 표준입니다.
svg.js 를 이용해서 작업하였습니다.
Text와 rect를 포함시켰고
rect는 배경색을 넣는 용도로, Text는 사용자가 입력한 항목을 보여주는 용도로 사용하였습니다.
만약 svg의 포함되어야 되는 요소들이 가변이 될 경우는 미리 포함시키지 않고 동적으로 생성하는 방식으로 변경해야 될 것 같습니다.
<svg xmlns=http://www.w3.org/2000/svg xmlns:xlink="http://www.w3.org/1999/xlink"
id="imagePreview" height="200" width="400">
<rect width="100%" height="100%" fill="#ffffff" id="imageBackground" />
<text id="imageText" dominant-baseline="middle" text-anchor="middle">
</text>
This browser doesn't support svg 🙅♂️
</svg>
이미지 다운로드 및 클립보드 복사 기능 구현
SVG에서 canvas로 변환하는 과정들은 동일 하기 때문에 convertImageAfterAction함수에서 인자로 callback 함수를 받아서 처리하도록 구현 하였습니다.
function convertImageAfterAction(callback) {
... 생략 ...
img.onload = function () {
ctx.drawImage(img, 0, 0);
DOMURL.revokeObjectURL(url);
callback(canvas);
};
img.src = url;
}
변환, 다운로드, 복사방법은 다음사이트를 참고하였습니다.
결과
클립보드로 복사하는 기능은 아직 master로 머지 하지 않아서 사이트에는 아직 기능이 없습니다.
마치며
이제 기능적?으로는 구현을 어느정도 하였기 때문에, 앞으로는 기능보다는 다른쪽에 집중을 하려 합니다.
- 디자인 및 CSS적용
- 사용자 편의성 증대
- Test? 도입
- 브라우저별 호환성 체크
- 소스코드 정리 및 분리
Author And Source
이 문제에 관하여(포스팅용 첨부 이미지 생성기 - 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@burnkim61/포스팅용-첨부-이미지-생성기-2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)