미니 프로그램에서 그림 구성 요소 저장 기능을 구현하는 방법을 단계별로 안내해 드립니다.
이 기사에서는 WeChat 애플릿그림 저장 구성 요소 개발에 대해 이야기하겠습니다. 모든 사람에게 도움이 되기를 바랍니다.
많은 WeChat 미니 프로그램에서는 더 많은 사람들에게 미니 프로그램을 알리기 위해 포스터를 저장하여 활동을 공유할 수 있습니다. 미니 프로그램을 개발할 때 이런 현상을 접한 적이 있을 것입니다. [관련 학습 추천 : 미니 프로그램 개발 튜토리얼]
오늘은 회사에서 만든 작은 프로그램에 포스터를 저장하는 기능을 공유해보겠습니다. 먼저, 이전 회사에서는 어떤 요구사항이 있었는지 먼저 설명하겠습니다. 회사의 온라인 미니 프로그램은 신규 사용자를 홍보하는 장기적인 목적을 가지고 있습니다. 각 사용자는 자신만의 포스터를 가지고 있어야 하며 개인 포스터를 통한 홍보는 간단한 방법입니다.
과제를 받고 먼저 유니버셜 인터넷에 검색을 하러 갔는데, 형이 비슷한 일을 했다고 하더군요. 그냥 과제를 끝내기 위한 것이었기 때문에 코드가 너무 지저분해서 나중에는 다른 프로젝트의 코드에서 찾아보다가 찾았네요~~ 하지만 주어진 시간도 빡빡하고 업무도 무거워서 좀 수정해서 먼저 제출하게 되었습니다. 그 후 온라인 기사를 따라가며 함정을 단계별로 따라가며 포스터를 저장하는 구성요소를 단계별로 구현했습니다.
Idea
우선, 그림 그리기, 텍스트 그리기, 포스터 앨범 저장 등의 기본 기능을 구체적으로 구현한 uniapp을 사용한다는 점을 말씀드립니다.
캔버스를 통해 포스터를 그립니다. 그려진 캔버스를 그림으로 변환하려면 uni.canvasToTempFilePath
를 사용하세요. 휴대폰 앨범의 로컬 임시 경로에 사진을 저장하려면 uni.saveImageToPhotosAlbum
을 사용하세요. 내 생각은 사용되는 모든 메소드를 구성요소에 캡슐화하고 상위 구성요소만 사용하여 사용해야 하는 메소드를 호출하고 관련 매개변수를 조정하는 것입니다. 구체적인 사용법은 샘플 코드를 확인하세요uni.canvasToTempFilePath
将绘制好的 canvas转为图片。通过uni.saveImageToPhotosAlbum
将本地临时路径的图片保存至手机相册中。而我的想法是将所有采用的方法全部封装到组件中,只通过父组件去调用需要使用的方法和调整相关的参数即可。 具体使用可以查看示例代码
通过canvas绘制海报内容的顺序先后问题
通过使用promise对象决定绘制海报内容的顺序先后。promise.all()
方法进行canvas最后一步的绘画操作 context.draw()
注意uni.getImageInfo()
-
在绘制图片 和 头像时,组件通过
uni.getImageInfo()
포스터 콘텐츠를 캔버스에 그리는 순서
그리는 순서 결정 Promise 객체를 이용하여 포스터 내용을 순서대로 작성합니다. -
Note uni의 마지막 단계를 수행합니다. getImageInfo( )
promise.all()
메서드는 캔버스 그리기 작업 context.draw()
uni.getImageInfo()
를 통해 그림의 관련 정보를 얻습니다. 이 메서드를 성공적으로 호출하기 위한 전제 조건은 다운로드 도메인 이름과 다운로드 도메인 이름은 WeChat 애플릿 백그라운드에서 구성해야 합니다. 물론 오류를 방지하려면 uploadFile 도메인 이름과 함께 요청 도메인 이름을 구성하는 것이 가장 좋습니다. 하지만 공식적인 팁은 다운로드 도메인 이름 화이트리스트를 구성했지만 이미지 정보를 얻을 수 없다는 것이 큰 함정입니다.
해당 구성이 없으면 디버깅이나 평가판, 정식 버전 등을 수행하는 동안 vconsole 디버깅 도구를 엽니다. uni.getImageInfo()는 이미지 정보를 얻을 수 있습니다. vconsole이 닫히면 uni.getImageInfo()가 실패하며 이는 함정이기도 합니다. -
이 컴포넌트 메소드, 변수 소개
- props
- canvasInfo 객체(필수)
- canvasWidth 캔버스 너비
-
can vasI d 캔버스 식별자
- isFullScreen Boolean
- methods
- canvasInit(콜백) 캔버스 초기화, 모든 캔버스 작업은 콜백 함수에서 수행되어야 합니다.
- drawCanvasImage(context, src, _imageWidth, _imageHeight, dx, dy) 캔버스에 이미지 그리기
- drawCircularAvatar(context, url, _circularX, _circularY, _circularR) 캔버스에 원형 이미지 그리기
- drawText (옵션) 캔버스에 한 줄 또는 여러 줄의 텍스트 그리기
샘플 code
<template> <view> <view class="savePosterItem"> <image v-show="tempFilePath" :src="tempFilePath"></image> <save-poster-com v-show="!tempFilePath" ref="savePoster" :canvasInfo="canvasInfo"></save-poster-com> </view> <button class="savePosterBtn" type="primary" @click="saveBtnFun">保存海报</button> </view> </template> <script> import SavePosterCom from '@/components/SavePosterCom/SavePosterCom.vue' export default { components: { SavePosterCom }, data() { return { canvasInfo: { canvasWidth: 620, canvasHeight: 950, canvasId: 'save-poster' }, tempFilePath: '', canvasBgUrl: 'https://images.pexels.com/photos/4065617/pexels-photo-4065617.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500', avatarUrl: 'https://p9-passport.byteacctimg.com/img/user-avatar/4dbf31fa6dec9c65b78a70d28d843c04~300x300.image' } }, onLoad() { let { drawCanvasImage, drawCircularAvatar, drawText } = this.$refs.savePoster.$options.methods this.$refs.savePoster.canvasInit(({ context, comThis }) => { // 获取画布宽高 let canvasWH = comThis.canvasWH // 绘制海报背景图 let promise_1 = drawCanvasImage(context, this.canvasBgUrl, canvasWH.canvasWidth, canvasWH.canvasHeight) // 必须先绘制玩海报背景图 再去操作其他绘制内容 promise_1.then(res => { let promise_2 = drawCircularAvatar(context, this.avatarUrl, canvasWH.canvasWidth / 2, canvasWH.canvasHeight / 7, 70) let promise_3 = drawText({ context: context, text: '皮皮虾仁', dx: (canvasWH.canvasWidth / 2) + 60, dy: canvasWH.canvasHeight / 4, fontSize: 30, fontColor: '#5D4037' }) let promise_4 = drawCanvasImage(context, this.avatarUrl, 150, 150, (canvasWH.canvasWidth / 2) + 85, (canvasWH.canvasHeight - 165)) this.$refs.savePoster.startDrawToImage(context, [promise_1,promise_2,promise_4], (tempFilePath) => { this.tempFilePath = tempFilePath }) }) }) }, methods: { saveBtnFun() { uni.showModal({ title: '保存海报', content: '海报将被保存至相册中', confirmText: '保存', success: (res) => { if(res.confirm) { this.$refs.savePoster.posterToPhotosAlbum(this.tempFilePath) } } }) } } } </script> <style> .savePosterItem { text-align: center; } .savePosterItem > image { width: 620rpx; height: 950rpx; } .savePosterBtn { margin-top: 40rpx; width: 80%; } </style>

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Xianyu의 공식 WeChat 미니 프로그램이 조용히 출시되었습니다. 미니 프로그램에서는 비공개 메시지를 게시하여 구매자/판매자와 소통하고, 개인 정보 및 주문 보기, 상품 검색 등을 할 수 있습니다. 궁금하시다면 Xianyu WeChat mini가 무엇인가요? 프로그램을 살펴볼까요? Xianyu WeChat 애플릿의 이름은 무엇입니까? 답변: Xianyu, 유휴 거래, 중고 판매, 평가 및 재활용. 1. 미니 프로그램에서는 대기 메시지 게시, 비공개 메시지를 통한 구매자/판매자와의 커뮤니케이션, 개인 정보 및 주문 보기, 특정 항목 검색 등을 할 수 있습니다. 2. 미니 프로그램 페이지에는 근처에 홈페이지가 있습니다. 유휴 게시, 메시지, 내 5가지 기능 3. 사용하려면 구매하기 전에 WeChat 결제를 활성화해야 합니다.

WeChat 애플릿은 사진 업로드 기능을 구현합니다. 모바일 인터넷의 발전으로 WeChat 애플릿은 사람들의 삶에 없어서는 안될 부분이 되었습니다. WeChat 미니 프로그램은 다양한 애플리케이션 시나리오를 제공할 뿐만 아니라 이미지 업로드 기능을 포함한 개발자 정의 기능도 지원합니다. 이 기사에서는 WeChat 애플릿에서 이미지 업로드 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. 준비 작업 코드 작성을 시작하기 전에 WeChat 개발자 도구를 다운로드하여 설치하고 WeChat 개발자로 등록해야 합니다. 동시에 WeChat도 이해해야 합니다.

WeChat 미니 프로그램에서 사진 필터 효과 구현 소셜 미디어 애플리케이션의 인기로 인해 사람들은 사진의 예술적 효과와 매력을 높이기 위해 사진에 필터 효과를 적용하는 것을 점점 더 좋아하고 있습니다. WeChat 미니 프로그램에서도 사진 필터 효과를 구현할 수 있어 사용자에게 더욱 흥미롭고 창의적인 사진 편집 기능을 제공합니다. 이 기사에서는 WeChat 미니 프로그램에서 이미지 필터 효과를 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저 WeChat 애플릿의 캔버스 구성 요소를 사용하여 이미지를 로드하고 편집해야 합니다. 페이지에서 캔버스 구성요소를 사용할 수 있습니다.

WeChat 미니 프로그램에서 드롭다운 메뉴 효과를 구현하려면 구체적인 코드 예제가 필요합니다. 모바일 인터넷의 인기로 인해 WeChat 미니 프로그램은 인터넷 개발의 중요한 부분이 되었으며 점점 더 많은 사람들이 관심을 갖고 주목하기 시작했습니다. WeChat 미니 프로그램을 사용하세요. WeChat 미니 프로그램 개발은 기존 APP 개발보다 간단하고 빠르지만 특정 개발 기술을 숙달해야 합니다. WeChat 미니 프로그램 개발에서 드롭다운 메뉴는 일반적인 UI 구성 요소로, 더 나은 사용자 경험을 제공합니다. 이 기사에서는 WeChat 애플릿에서 드롭다운 메뉴 효과를 구현하는 방법을 자세히 소개하고 실용적인 정보를 제공합니다.

WeChat 애플릿을 사용하여 캐러셀 전환 효과를 얻으세요. WeChat 애플릿은 개발 및 사용이 간단하고 효율적인 경량 애플리케이션입니다. WeChat 미니 프로그램에서는 캐러셀 전환 효과를 달성하는 것이 일반적인 요구 사항입니다. 이 기사에서는 WeChat 애플릿을 사용하여 캐러셀 전환 효과를 얻는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저 WeChat 애플릿의 페이지 파일에 캐러셀 구성 요소를 추가합니다. 예를 들어 <swiper> 태그를 사용하여 캐러셀의 전환 효과를 얻을 수 있습니다. 이 구성 요소에서는 b를 전달할 수 있습니다.

Xianyu의 공식 WeChat 미니 프로그램이 사용자에게 유휴 항목을 쉽게 게시하고 거래할 수 있는 편리한 플랫폼을 제공하기 위해 조용히 출시되었습니다. 미니 프로그램에서는 비공개 메시지를 통해 구매자 또는 판매자와 소통할 수 있으며, 개인정보 및 주문 조회, 원하는 상품을 검색할 수 있습니다. 그렇다면 WeChat 미니 프로그램에서 Xianyu는 정확히 무엇이라고 불리나요? 이 튜토리얼 가이드에서는 이에 대해 자세히 소개합니다. 알고 싶은 사용자는 이 기사를 따라 계속 읽어보세요! Xianyu WeChat 애플릿의 이름은 무엇입니까? 답변: Xianyu, 유휴 거래, 중고 판매, 평가 및 재활용. 1. 미니 프로그램에서는 대기 메시지 게시, 비공개 메시지를 통한 구매자/판매자와의 커뮤니케이션, 개인 정보 및 주문 보기, 특정 항목 검색 등을 할 수 있습니다. 2. 미니 프로그램 페이지에는 근처에 홈페이지가 있습니다. 유휴 게시, 메시지 및 5가지 기능.

PHP를 사용하여 WeChat 애플릿의 중고 거래 기능을 개발하는 방법은 무엇입니까? 인기 있는 모바일 애플리케이션 개발 플랫폼인 WeChat 애플릿은 점점 더 많은 개발자가 사용하고 있습니다. WeChat 미니 프로그램에서 중고 거래는 일반적인 기능 요구 사항입니다. 이 기사에서는 PHP를 사용하여 WeChat 애플릿의 중고 거래 기능을 개발하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. 준비 작업 개발을 시작하기 전에 다음 조건이 충족되는지 확인해야 합니다. 미니 프로그램의 AppID 등록 및 미니 프로그램 배경 설정을 포함하여 WeChat 미니 프로그램의 개발 환경이 설정되었습니다.

WeChat 미니 프로그램에서 이미지 회전 효과를 구현하려면 구체적인 코드 예제가 필요합니다. WeChat 미니 프로그램은 사용자에게 풍부한 기능과 좋은 사용자 경험을 제공하는 경량 애플리케이션입니다. 미니 프로그램에서 개발자는 다양한 구성 요소와 API를 사용하여 다양한 효과를 얻을 수 있습니다. 그 중 그림 회전 효과는 미니프로그램에 흥미와 시각 효과를 더할 수 있는 일반적인 애니메이션 효과이다. WeChat 미니 프로그램에서 이미지 회전 효과를 얻으려면 미니 프로그램에서 제공하는 애니메이션 API를 사용해야 합니다. 다음은 방법을 보여주는 특정 코드 예제입니다.
