18세 때인 1759년(영조 35)에 『영조정순후가례도감의궤(英祖貞純后嘉禮都監儀軌)』 제작에 참여했고, 1762년(영조 38)에는 정조효의후가례도감(正祖孝懿后嘉禮都監)과 사도세자예장도감(思悼世子禮葬都監)에 참여했다.
1781년(정조 5)에는 정조 어진(御眞) 도사(圖寫)와 영조 어진 모사에 수종화사(隨從畵師)로 참여했다. 1783년(정조 7) 윤 3월 정조가 규장각 소속 차비대령화원을 선발할 때, 시험 없이 원차비대령화원으로 차정되어 1788년(정조 12)까지 5년 동안 봉직했다. 『내각일기』의 ‘포폄등제'에 "산수를 잘하다 상등"이라고 세 번 기록되었다.
1783년(정조 7) 12월 동지사 겸 사은사행의 수행 화원으로 베이징[北京]을 방문했고, 이듬해인 1784년(정조 8) 문효세자책례도감(文孝世子冊禮都監)에서 「반차도(班次圖)」를 제작했다. 1786년(정조 10) 7월부터 이듬해까지 짧은 기간 동안 소촌도 찰방(召村道 察訪)을 지내기도 했다. 1788년(정조 12) 정조의 어명으로 김홍도와 함께 영동 9군과 금강산을 주유하며 사경(寫景)을 수행했다.
현재 작품은 20여 점 전해지는데, 「운룡도(雲龍圖)」를 제외하면 모두 산수화이다. 정선, 강세황, 심사정의 영향을 받았고, 남종화법(南宗畵法)을 토대로 한 정형 산수와 진경산수(眞景山水)에 모두 능했다.
1788년(정조 12) 봉명사경(奉命寫景)으로 완성된 『해악전도첩(海嶽全圖帖)』은 금강산, 해금강, 관동팔경의 명승 명소를 그림과 글씨로 기록한 서화첩이다. 현재 원(元), 형(亨), 리(利), 정(貞) 4책으로 주1되었고, 각 첩의 오동나무 판 겉표지에 ‘해악전도’라고 적힌 제첨이 붙어 있다. 그림은 60점이고, 기문은 51점이다. 그림 60점에는 기존의 금강산 화첩 제작 시 다루지 않았던 장소가 몇 점 포함되어 있다.
대표작으로 금강산도 이외에 국립중앙박물관 소장 「강안청적도(江岸聽笛圖)」, 개인 소장 『복헌백화시화합벽첩(復軒白華詩畵合壁帖)』, 「강산승람도(江山勝覽圖)」, 「심수춘색도(心隨春色圖)」 등이 있다.