본문 바로가기

SKIA8

2.7 Surface void draw(SkCanvas* canvas) { sk_sp big(SkSurfaces::Raster(SkImageInfo::MakeN32Premul(64, 64))); sk_sp lil(big->makeSurface(SkImageInfo::MakeN32(32, 32, kPremul_SkAlphaType))); big->getCanvas()->clear(SK_ColorRED); lil->getCanvas()->clear(SK_ColorBLACK); lil->draw(big->getCanvas(), 16, 16); SkPixmap pixmap; if (big->peekPixels(&pixmap)) { SkBitmap bigBits; bigB.. 2025. 5. 19.
2.6 Canvas CheckerBoard // 체커보드 패턴을 그리는 함수void checkerboard(SkCanvas* canvas) { SkColor color1 = SK_ColorLTGRAY; // 배경 색상 (밝은 회색) SkColor color2 = SK_ColorCYAN; // 패턴 색상 (청록색) SkScalar scale = 10.0f; // 타일 하나의 기본 크기 SkPath path; path.addRect(0, 0, scale, scale); // 패턴으로 사용할 사각형 경로 추가 (10x10) // 매트릭스를 생성해 사각형 패턴을 복제할 방법 정의 SkMatrix matrix = SkMatrix::Scale(2 * scale, scale); // 가로로 2배,.. 2025. 5. 13.
2.5 Canvas read&write Pixels, saveLayer ReadPixelsvoid draw(SkCanvas* canvas) { // 캔버스를 파란색으로 클리어 canvas->clear(SK_ColorBLUE); SkPaint paint; // 중심 (32,32), 반지름 28짜리 원을 그림 (기본색 = 검정) canvas->drawCircle(32, 32, 28, paint); // 64x64 크기, BGRA8888 포맷, Premultiplied 알파의 이미지 정보 생성 SkImageInfo info = SkImageInfo::Make(64, 64, kBGRA_8888_SkColorType, kPremul_SkAlphaType); // info에 맞는 크기의 메모리 할당 (64x64x4 = 16384바이트) .. 2025. 5. 9.
2.4 Canvas drawImage 함수설명drawImage(image, x, y)위치 (x, y)에 이미지를 그린다. 기본 샘플링, paint 없음drawImage(image, x, y, sampling)샘플링 방식 지정 (예: 선형 보간 등)drawImage(image, x, y, sampling, paint)투명도, 효과, blend 설정 가능drawImage(image, dstRect, sampling, paint)이미지를 dstRect에 스케일링해서 그림 함수설명drawImageRect(image, dstRect, sampling)이미지를 dstRect에 맞게 스케일링해서 그림. Paint 없음drawImageRect(image, dstRect, sampling, paint)스케일링 + 투명도/효과/블렌드 적용drawImageR.. 2025. 5. 5.