QPicture schneiden?
-
Whitefurrows
- Beiträge: 138
- Registriert: 1. Mai 2006 19:50
QPicture schneiden?
Hallo,
wenn ich ein QPicture(z.b. Höhe 500 x Breite 250) habe, wie kann ich dieses zuschneiden, damit ich ein neues QPicture habe(z.B. Höhe 250 x Breite 250). Die neue Höhe muss von unten gemessen werden, da das Original QPicture in der Höhe variieren kann und ich brauche immer den unteren Teil von z.B. 250.
Gruß
Whitefurrows
wenn ich ein QPicture(z.b. Höhe 500 x Breite 250) habe, wie kann ich dieses zuschneiden, damit ich ein neues QPicture habe(z.B. Höhe 250 x Breite 250). Die neue Höhe muss von unten gemessen werden, da das Original QPicture in der Höhe variieren kann und ich brauche immer den unteren Teil von z.B. 250.
Gruß
Whitefurrows
-
Whitefurrows
- Beiträge: 138
- Registriert: 1. Mai 2006 19:50
Hallo,
danke für den Tipp. So habe ich es versucht:
Leider funktioniert es nicht, kannst du mir helfen?
Gruß
Whitefurrows
danke für den Tipp. So habe ich es versucht:
Code: Alles auswählen
QPainter p;
QPicture pic;
QRect cut;
pic.load("c:\\pic.png");
cut.setRect(0, pic.height()-250 ,250,250);
p.begin(&pic);
p.setClipRect(cut);
p.end();
pic.save("c:\\pic2.png")Gruß
Whitefurrows
ähm ich hab eigentlich keine Ahnung davon, aber könnte es sein, dass du
den Painter zwar als abgeschnitten zu zeichnen definierst, aber erstens vergisst das Bild zu zeichnen und zweitens wenn du zeichnen würdest, der Rest immernoch da wäre, da du ihn ja nicht verworfen hast?
Probier mal:
Elgrimm Esleborn
den Painter zwar als abgeschnitten zu zeichnen definierst, aber erstens vergisst das Bild zu zeichnen und zweitens wenn du zeichnen würdest, der Rest immernoch da wäre, da du ihn ja nicht verworfen hast?
Probier mal:
Code: Alles auswählen
QPicture pic;
QPicture target;
pic.load("c:/pic.png");
if ( !pic.isNull ( ) )
{
QRect cut ( 0, pic.height()-250 ,250,250);
QPainter painter ( &target );
painter.setClipRect(cut);
painter.drawPicture(0, 0, pic);
painter.end();
}
target.save("c:/pic2.png")Glaube an eine Lösung, nur dann kannst du auch eine finden.
-
Whitefurrows
- Beiträge: 138
- Registriert: 1. Mai 2006 19:50
Also, das hier funktioniert:
Code: Alles auswählen
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPicture pic1;
QPainter p;
p.begin(&pic1);
p.setPen(QColor(0, 0, 255));
p.setBrush(QColor(0, 128, 0));
p.drawEllipse(0, 0, 100, 100);
p.end();
QPicture pic2;
p.begin(&pic2);
p.setClipRect(0, 0, 50, 50);
p.drawPicture(0, 0, pic1);
p.end();
QLabel *label=new QLabel(0);
label->show();
label->setPicture(pic2);
return app.exec();
}-
Whitefurrows
- Beiträge: 138
- Registriert: 1. Mai 2006 19:50
-
Whitefurrows
- Beiträge: 138
- Registriert: 1. Mai 2006 19:50