Struckt probleme :(



  • Machst du das so in histequ?

    Nein!

    Da benutzt du eine extra Variable, so wie DarkShadow44 es schon vorgeschlagen hat.

    Machst du in deinem Programm (da wo du freistellen aufrufst) auch ein #include "imgproc.h"?



  • schaut aktuell so aus....

    #include <stdio.h>
    #include <stdlib.h>
    
    #include "writeGIF.h"     /* Deklarationen für die GIF-Routinen */
    #include "loadjpeg.h"     /* Deklarationen für die JPEG-Routinen */
    #include "imgproc.h"      /* Deklarationen für die Bildverarbeitungsroutinen */
    
    /* Name für das Testbild */
    #define TestBild       "Foto"
    #define Matrikelnummer "123456"
    #define JPG_Extension  ".jpg"
    #define GIF_Extension  ".gif"
    #define TestBild_In    TestBild JPG_Extension
    
    	if ( rcode != 0 )
    	{
    		fprintf( stderr, "Fehler beim Schreiben der GIF-Datei!\n");
    		return (1);
    	}
    

    OK jetzt ist die fehlermeldung weg 🙂 der speichert mir immernoch nicht den "ausschnitt" den ich gern hätte.



  • Ja weil du den Rückgabewert von freistellen nicht nutzt und das alte Bild abspeicherst...
    Schau dir nochmal die Funktion an:

    /* Funktion zum Extrahieren eines Bildausschnitts. 
       Das Ursprungsbild wird nicht verändert. 
       Der Rückgabewert ist ein Zeiger auf ein neues Bild, 
       das den Ausschnitt enthält. 
    */ 
    PIXEL **freistellen(PIXEL **bild, 
                        int   anzahl_zeilen,  /* Zeilenanzahl von bild */ 
                        int   anzahl_spalten, /* Spaltenanzahl von bild */ 
                        ImageBox region    /* Größe und Lage des Bildausschnitts */                 
                        ); /* Breite des Ausschnitts (#Spalten) */
    

    Außerdem müsstest du beim speichern die spalten und Zeilenanzahl des neuen Abschnitts angeben, nicht die des originals!



  • bizbo schrieb:

    ... der speichert mir immernoch nicht den "ausschnitt" den ich gern hätte.

    bizbo schrieb:

    rcode = writeGIF( "A" Matrikelnummer GIF_Extension, bild, zeilenanzahl, spaltenanzahl);
     
       
     
        ImageBox gregion = {420, 231, 810, 1119};
        freistellen(bild, 2048, 2048,gregion);
        rcode = writeGIF( "B" Matrikelnummer GIF_Extension, bild, zeilenanzahl, spaltenanzahl);
    

    Schau dir da mal die erste und letzte Zeile an.
    Worin unterscheiden die sich?
    Nur in dem ersten Zeichen für den Dateinamen. Und da wunderst du dich, dass du das gleiche Bild bekommst.

    Aus deiner imgproc.h:

    imgproc.h schrieb:

    /* Funktion zum Extrahieren eines Bildausschnitts.
       Das Ursprungsbild wird nicht verändert.
       Der Rückgabewert ist ein Zeiger auf ein neues Bild,
       das den Ausschnitt enthält.
    */
    PIXEL **freistellen(PIXEL **bild,
                        int   anzahl_zeilen,  /* Zeilenanzahl von bild */
                        int   anzahl_spalten, /* Spaltenanzahl von bild */
                        ImageBox region    /* Größe und Lage des Bildausschnitts */                
                        ); /* Breite des Ausschnitts (#Spalten) */
    

    Der Kommentar vor der Funktionsdeklaration steht da nicht ohne Grund.

    Und nach dem Freistellen hat das Bild auch ein andere Größe.



  • Tja, da habe ich vieel zu lange geschrieben 😃
    (über fünf Minuten 🙄 )

    Ach, und der Titel Pointer geht nicht 😞 ist falsch. Du hast Probleme mit einer struct .
    Aber das wird noch.



  • vielen Dank für eure Gedult mit mir, da ich jetzt schon einige Zeit daran sitze kann ich nicht mehr klar denken.

    Könntet Ihr mir vielleicht anstatt Gedankenstupser einen Stoß verpassen?



  • PIXEL ** bildNeu = freistellen(/* ...*/);
    writeGIF( "A" Matrikelnummer GIF_Extension, bildNeu, /*neue zeilenanzahl*/, /*neue spaltenanzahl*/);
    


  • Vielen Dank 🙂 also der compiler zeigt keine Fehler, aber wenn ich auf debuggen gehe, stürzt das programm ab o.O ???

    ImageBox gregion = {1119, 810, 231, 420};
    	PIXEL **bildneu=freistellen(bild, 2048, 2048,gregion);
    	rcode = writeGIF( "B" Matrikelnummer GIF_Extension, bildneu, 1119, 810);
    


  • ImageBox gregion = {/*x:*/ 1119, /*y:*/ 810, /*spaltenanzahl:*/ 231, /*zeilenanzahl:*/ 420};
    // ...
    rcode = writeGIF( "B" Matrikelnummer GIF_Extension, bildneu, /*zeilenanzahl:*/ 1119, /*spaltenanzahl:*/ 810);
    

    Merkst du was ? 😃



  • Alter schwede.... viiiiieeeeeelllen Dank Mann.....


Anmelden zum Antworten