On Dec 29, 2003, at 3:29 PM, Thierry Arbellot wrote:
So, the code should look like this:

Okay, I've implemented your code example and am able to get a picture into an image object in Revolution. The pictures I grab from stills or movies don't look right however. You can see what the image should look like here <http://www.mangomultimedia.com/developer/revolution/good_image.jpg> and what the image I am getting in Revolution looks like here <http://www.mangomultimedia.com/developer/revolution/bad_image.jpg>.


I have tried various methods of putting an image into the GWorld (going to a certain time in the movie and putting that into the GWorld as well as using the QT API call GetMoviePict/GetMoviePosterPic) with the same result.

Any ideas on what might be happening?


Here is the code:


// Get movie dimensions and create offscreen GWorld
GetMovieBox(mv, &movieFrame);
NewGWorld(&theGWorld, k32ARGBPixelFormat, &movieFrame, NULL, NULL, (GWorldFlags)0);


SetGWorld(theGWorld, NULL);

// get image from movie and put into GWorld
thePicHandle = GetMoviePosterPict (mv);
EraseRect(&movieFrame);
DrawPicture(thePicHandle, &movieFrame);

LockPixels(GetPortPixMap(theGWorld));
thePixMap = *(GetPortPixMap(theGWorld));

if (thePixMap->baseAddr != NULL) {
        rdata.sptr = thePixMap->baseAddr;
        rdata.length = movieFrame.right * movieFrame.bottom * 4;
        
        SetVariableEx(args[0], "", &rdata, &retvalue);
        
        retstr = (char *)malloc(8);
        sprintf(retstr, "%s", "Success");
} else {
        retstr = (char *)malloc(8);
        sprintf(retstr, "%s", "Failure");
}

UnlockPixels(GetPortPixMap(theGWorld));
DisposeGWorld(theGWorld);
DisposeHandle((Handle)thePicHandle);
CloseMovieFile(refnum);
DisposeMovie(mv);

--
Trevor DeVore
Blue Mango Multimedia
[EMAIL PROTECTED]

_______________________________________________
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to