2017-04-26 1 views
0

만약 내가 1px 두께의 이미지를 가지고 있다면 어떻게하면 더 커지 냐고, 아니면 어떻게 늘릴 것인가?Direct2d duplicate/stretch 1px 이미지

당신이 내 코드를 볼 수는 최고의 당신이 변환을 확장 사용할 수있는 이미지를 스트레칭하기

colorMatrixEffect->SetInput(0, texture); //texture = ID2D1Bitmap* 
    D2D1_MATRIX_5X4_F matrix = D2D1::Matrix5x4F(color->r, 0, 0, 0, 0, color->g, 0, 0, 0, 0, color->b, 0, 0, 0, 0, 1, 0, 0, 0, 0); 
    colorMatrixEffect->SetValue(D2D1_COLORMATRIX_PROP_COLOR_MATRIX, matrix); 

    if (rect.right == 0) 
    { 
     device_context_d2d1->DrawImage(colorMatrixEffect.get(), 
      D2D1::Point2F(newRect.left + offsetX, newRect.top + offsetY)); 
    } 
    else 
    { 
     for (int i = 0; i < static_cast<int>(newRect.right); i++) 
     { 
      device_context_d2d1->DrawImage(colorMatrixEffect.get(), 
       D2D1::Point2F(newRect.left + offsetX + i, newRect.top + offsetY)); 
     } 
    } 

답변

0

DrawImage를 반복하지 때문입니다.

이미지를 D2D1Bitmap으로 렌더링하고 비트 맵으로 그릴 수도 있습니다. 더 많은 매개 변수가있는 DrawBitmap 메서드가 있습니다. 그러면 비트 맵의 ​​일부를 대상 장치의 어느 부분 으로든 늘릴 수 있습니다.

CreateBitmapBrush/CreateImageBrush 방법 또는 비트 맵 이미지를 생성 브러시 D2D1_EXTEND_MODE_WRAPextendMode* 특성을 설정할 수있는 반복 패턴을 그린 후, 바로이 브러시 원하는 형상을 작성한다.

관련 문제