use Win32::API; use Win32::GUI::DIBitmap; use GD; $GetDC = new Win32::API('user32','GetDC',['N'],'N'); my $dc = $GetDC->Call(0); my $dib = newFromDC Win32::GUI::DIBitmap ($dc); $dib->SaveToFile("DIBitmap.png"); #my $GDimage = GD::Image->newFromPng( "DIBitmap.png", 1 ); my $mem = $dib->SaveToData( Win32::GUI::DIBitmap::GetFIFFromFormat( 'PNG' ) ); my $GDimage = GD::Image->newFromPngData( $mem, 1 ); open (DISPLAY, ">GD.png"); binmode DISPLAY; print DISPLAY $GDimage->png; close (DISPLAY);