어떻게 QML 이미지를 전화 메모리에 저장할 수 있습니까 ??QML 이미지 저장
또한 이미지를 저장할 수있는 경우 이미지에 텍스트를 추가해야하는 경우가 있습니다. (텍스트가있는 투명한 이미지가있는 것처럼 상상해 볼 수 있습니다.) 두 번째 이미지 위에 놓습니다. , 마침내 우리는 전화 메모리에 저장할 수있는 하나의 이미지를 가지고 있습니다.)
어떻게 QML 이미지를 전화 메모리에 저장할 수 있습니까 ??QML 이미지 저장
또한 이미지를 저장할 수있는 경우 이미지에 텍스트를 추가해야하는 경우가 있습니다. (텍스트가있는 투명한 이미지가있는 것처럼 상상해 볼 수 있습니다.) 두 번째 이미지 위에 놓습니다. , 마침내 우리는 전화 메모리에 저장할 수있는 하나의 이미지를 가지고 있습니다.)
아니요 Image
에서 직접. QDeclarativeImage
은 pixmap
, setPixmap
및 pixmapChange
방법을 가지고 있지만 어떤 이유로 인해 신고 된 속성이 없습니다. 따라서 fom qml을 사용할 수 없습니다. 불행히도 C++에서 사용할 수 없습니다. 개인용 Calsss입니다.
당신이 할 수있는 일은 그래픽 항목을 귀하의 픽스맵에 페인트하여 파일로 저장하는 것입니다.
class Capturer : public QObject
{
Q_OBJECT
public:
explicit Capturer(QObject *parent = 0);
Q_INVOKABLE void save(QDeclarativeItem *obj);
};
void Capturer::save(QDeclarativeItem *item)
{
QPixmap pix(item->width(), item->height());
QPainter painter(&pix);
QStyleOptionGraphicsItem option;
item->paint(&painter, &option, NULL);
pix.save("/path/to/output.png");
}
등록 "취득 부"컨텍스트 변수 :
int main()
{
// ...
Capturer capturer;
QmlApplicationViewer viewer;
viewer.rootContext()->setContextProperty("capturer", &capturer);
// ...
}
그리고 당신의 QML에서 사용 : 당신이 당신의 QML에서 바로 그것을 할 수 5.4+ Qt를 가진
Rectangle {
// ...
Image {
id: img
source: "/path/to/your/source"
}
MouseArea {
anchors.fill: parent
onClicked: {
capturer.save(img)
}
}
}
감사합니다. 이제 Qt에서 2 개의 이미지를 병합하는 방법을 찾으십시오. 도와 주실 수 있습니까? – Bayan
어떻게 2 개의 QQuickItem을 오버레이/병합하고 이미지에 저장합니까? –