Image
से सीधे नहीं। QDeclarativeImage
में pixmap
, setPixmap
और pixmapChange
विधियां हैं, लेकिन किसी कारण से कोई संपत्ति घोषित नहीं की गई है। तो आप इसे fom qml का उपयोग नहीं कर सकते हैं। दुर्भाग्य से इसका उपयोग सी ++ से भी नहीं किया जा सकता है - यह एक निजी कैल्सएसएस है।
आप अपने पिक्समैप पर पेंट ग्राफिक्स आइटम को पेंट कर सकते हैं और इसे फ़ाइल में सहेज सकते हैं।
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 में इसका इस्तेमाल करते हैं:
Rectangle {
// ...
Image {
id: img
source: "/path/to/your/source"
}
MouseArea {
anchors.fill: parent
onClicked: {
capturer.save(img)
}
}
}
धन्यवाद प्रिय, यह काम करता है :)। अब मैं क्यूटी में 2 छवियों को मर्ज करने के बारे में खोजता हूं, क्या आप मेरी मदद कर सकते हैं? – Bayan
2 'QQuickItem की ओवरले/विलय कैसे करें और इसे किसी छवि पर सहेजें? –