2017-02-24 3 views
2

Qt Qml에서 원형 이미지를 구현하고 싶습니다. 다음 코드로 Image 요소를 사용하고 있습니다.Qt Qml의 원형 이미지

Rectangle { 
       id: mask 
       anchors.centerIn: parent 
       width: 200 
       height: 200 
       radius: 100 
       clip:true 
      } 

      Image { 
       id: image 
       anchors.fill: mask 
       source: "test.jpg" 
      } 

그러나 작동하지 않습니다. 당신이 이것에 대해 어떤 생각이 든다면 나를 도와주세요. 감사.

+2

가능한 복제 (http://stackoverflow.com/questions/6090740/image-rounded-corners-in-qml) – BaCaRoZzo

답변

4

클립핑은 항상 항목의 사각형 경계 상자에 적용됩니다. 따라서 클리핑과 함께 사각형을 사용하여 둥근 이미지를 생성 할 수 없습니다.

그러나 시도 할 내용을 얻기 위해 OpacityMask을 사용할 수 있습니다. 좋은 사례는 연결된 doucmentation에서 찾을 수 있습니다.

또는 당신이 사용할 수 있습니다

import QtQuick 2.7 
import QtQuick.Window 2.0 
import QtGraphicalEffects 1.0 

Window { 
    id: root 
    width: 1024 
    height: 800 
    visible: true 

    Image { 
     id: img 
     source: 'ImageSource...' 
     width: 500 
     height: 500 
     fillMode: Image.PreserveAspectCrop 
     layer.enabled: true 
     layer.effect: OpacityMask { 
      maskSource: mask 
     } 
    } 

    Rectangle { 
     id: mask 
     width: 500 
     height: 500 
     radius: 250 
     visible: false 
    } 
} 
[이미지 QML에 둥근 모서리]의
+0

를 대단히 감사합니다 ... –

+1

예를 들어 [여기] (http://stackoverflow.com/q/6090740/2538363). – BaCaRoZzo

+0

'Window.effect'의'OpacityMask'를'Window'의 일반 자식과 비교했을 때의 차이점은 무엇입니까? – GrecKo