Image Crop Function w/ Black Background

I’m using the following function to resize + crop images uploaded from a form but It’s defaulting to a black background. I tried to use imagecolorallocate() but it’s not working.

Any help is appreciated.

<?php
function cropImage($nw, $nh, $source, $stype, $dest) {
         $size = getimagesize($source);
         $w = $size[0];
          $h = $size[1];

          switch($stype) {
              case 'gif':
              $simg = imagecreatefromgif($source);
              break;
              case 'jpg':
              $simg = imagecreatefromjpeg($source);
              break;
              case 'png':
              $simg = imagecreatefrompng($source);
              break;
          }
			
          $dimg = imagecreatetruecolor($nw, $nh);
		
          
		  $wm = $w/$nw;
          $hm = $h/$nh;
          $h_height = $nh/2;
          $w_height = $nw/2;

          if($w> $h) {
              $adjusted_width = $w / $hm;
              $half_width = $adjusted_width / 2;
              $int_width = $half_width - $w_height;
              imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h);
          } elseif(($w <$h) || ($w == $h)) {
              $adjusted_height = $h / $wm;
              $half_height = $adjusted_height / 2;
              $int_height = $half_height - $h_height;

              imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$nw,$adjusted_height,$w,$h);
          } else {
              imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h);
          }
		  
          imagejpeg($dimg,$dest,100);
}
?>

A rough guess - jpg will not support transparency; is this the problem ?