QImage + QRect kombinieren

Alles rund um die Programmierung mit Qt
Antworten
PeterPan200
Beiträge: 18
Registriert: 19. März 2007 22:20

QImage + QRect kombinieren

Beitrag von PeterPan200 »

Hallo zusammen!
Problemstellung: Als erstes lade ich ein Image hoch(Screenshot / *bmp.).

Code: Alles auswählen

	QString newFile( QFileDialog::getOpenFileName( dir, "BMP (*.bmp)", this ) );
    if ( !newFile.isEmpty() )
    {
		loadImage( newFile);

		MultiLineEdit1->setText(newFile);
		LoadFLabel->setText(newFile);
		m_LastDir = dir = newFile;
Danach lese ich es aus und möchte ganz gerne einen bestimmten Bereich haben! Ich habe gelesen, dass die Klasse QImage die Funktion QRect benutzt. Alles schön und gut, aber wie greife ich auf diesen Bereich zu bzw. wie kann ich es mir ausgeben lassen??

Code: Alles auswählen

void PresentDialog::loadImage( QString fileName)
{
	dateiName = fileName;

		if( image.load(dateiName))
		{
QRect rect(125,369,image.width()-67, image.height()-51);
.
.
.
}
}
Für Hilfe wäre ich sehr dankbar!

MfG
Peter
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Du hast die Frage in ähnlicher bereits gestellt und dort die passenden Antworten erhalten.
PeterPan200
Beiträge: 18
Registriert: 19. März 2007 22:20

Beitrag von PeterPan200 »

Hallo upsala!
Wie soll das Ganze denn mit ScanLine funktionieren? Hast du vielleicht en kleines Bsp. dazu??

Danke!!
MfG
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

PeterPan200 hat geschrieben:Hallo upsala!
Wie soll das Ganze denn mit ScanLine funktionieren? Hast du vielleicht en kleines Bsp. dazu??

Danke!!
MfG
wenn es nur um den bereich zu auswahlen geht ... dann lese http://qtforum.de/forum/viewtopic.php?t=3885
.........................
speack português italiano deutsch english castellà qt
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Was soll das bringen, wenn ich dir deine Frage beantworte? Du hast ja noch nichteinmal deinen letzten Thread komplett durchgelesen!
PeterPan200
Beiträge: 18
Registriert: 19. März 2007 22:20

Beitrag von PeterPan200 »

Ich habe mir den Beitrag komplett durchgelesen! Habe die scanLine Funktion benutzt und ich bekomme damit die Adresse des Anfangs der Zeile.

Was ich nicht verstehe ist, wie ich mit dieser Funktion einen bestimmten Bereich eines Images auslesen kann??
Sorry, aber ich programmiere erst seit einer Woche mit Qt ;-)))

Danke für das Verständniss...
Gruß
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Und der Beitrag von Christian81 wird nur bei mir angezeigt? Oder gefällt dir QImage::copy(...) nicht?
PeterPan200
Beiträge: 18
Registriert: 19. März 2007 22:20

Beitrag von PeterPan200 »

Danke erstmal, ich werde es mir morgen mal anschauen!

Gruß
:wink: :wink: :wink:
PeterPan200
Beiträge: 18
Registriert: 19. März 2007 22:20

Beitrag von PeterPan200 »

Hallo zusammen!!
Das Problem mit QRect, QImage::copy wurde gelöst! Jetzt habe ich ein anderes Problem: Ich möchte ganz gerne wissen, wieviele Zeilen mein Image hat und wo die letzte Zeile beginnt??

Mit der Funktion "ScanLine" kriegt man ja die Anfangsadresse der zeile raus!Aber wie bekomme ich die Gesamtanzahl der Zeilen raus??

Vielen Dank!!
MfG
Peter
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

PeterPan200 hat geschrieben:Hallo zusammen!!
Das Problem mit QRect, QImage::copy wurde gelöst! Jetzt habe ich ein anderes Problem: Ich möchte ganz gerne wissen, wieviele Zeilen mein Image hat und wo die letzte Zeile beginnt??

Mit der Funktion "ScanLine" kriegt man ja die Anfangsadresse der zeile raus!Aber wie bekomme ich die Gesamtanzahl der Zeilen raus??

Vielen Dank!!
MfG
Peter
pixel breite x pixel hoehe... dass sind die zeilen....

http://de.wikipedia.org/wiki/Pixel

Code: Alles auswählen


extern inline  QImage GreyScale( QImage income )
{
   
    QImage base =  income.convertToFormat(QImage::Format_RGB32);
    for (int y = 0; y < base.height(); ++y) {
             for (int x = 0; x < base.width(); ++x) {
                 int pixel = base.pixel(x, y);
                 int gray = qGray(pixel);
                 int alpha = qAlpha(pixel);
                 base.setPixel(x, y, qRgba(gray, gray, gray, alpha));
             }
         }
         
    return base;
} 

.........................
speack português italiano deutsch english castellà qt
PeterPan200
Beiträge: 18
Registriert: 19. März 2007 22:20

Beitrag von PeterPan200 »

Hallo Patrik08,

vielen Dank für deine Antwort! Das heiß jetzt also, dass x*y die Anzahl der Zeilen in meinem Image sind??

Wenn das so ist, kann man doch auch mit "image.height()*image.width()" arbeiten, oder??

Vielen Dank
Peter
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

PeterPan200 hat geschrieben:Hallo Patrik08,

vielen Dank für deine Antwort! Das heiß jetzt also, dass x*y die Anzahl der Zeilen in meinem Image sind??

Wenn das so ist, kann man doch auch mit "image.height()*image.width()" arbeiten, oder??

Vielen Dank
Peter
Richtig .... das habe ich bereits viele zeile vorher geschrieben....
lade dir die beispiele und code von http://qtforum.de/forum/viewtopic.php?t=3885 dann weist du viel mehr ueber bilder... teorie e praxis....
.........................
speack português italiano deutsch english castellà qt
Antworten