uri = $path; $source->uid = 1; // TODO: randomize? Use case specific. $source->filemime = 'image/' . pathinfo($path, PATHINFO_EXTENSION); $destination_dir = $field['settings']['uri_scheme'] . '://' . $instance['settings']['file_directory']; file_prepare_directory($destination_dir, FILE_CREATE_DIRECTORY); $destination = $destination_dir . '/' . basename($path); $file = file_move($source, $destination, FILE_CREATE_DIRECTORY); $images[$extension][$min_resolution][$max_resolution][$file->fid] = $file; } else { return FALSE; } } else { // Select one of the images we've already generated for this field. $file = new stdClass(); $file->fid = array_rand($images[$extension][$min_resolution][$max_resolution]); } $object_field['fid'] = $file->fid; $object_field['alt'] = devel_create_greeking(4); $object_field['title'] = devel_create_greeking(4); return $object_field; } /** * Private function for creating a random image. * * This function only works with the GD toolkit. ImageMagick is not supported. */ function devel_generate_image($extension = 'png', $min_resolution, $max_resolution) { if ($tmp_file = drupal_tempnam('temporary://', 'imagefield_')) { $destination = $tmp_file . '.' . $extension; file_unmanaged_move($tmp_file, $destination, FILE_CREATE_DIRECTORY); $min = explode('x', $min_resolution); $max = explode('x', $max_resolution); $width = rand((int)$min[0], (int)$max[0]); $height = rand((int)$min[0], (int)$max[0]); // Make a image split into 4 sections with random colors. $im = imagecreate($width, $height); for ($n = 0; $n < 4; $n++) { $color = imagecolorallocate($im, rand(0, 255), rand(0, 255), rand(0, 255)); $x = $width/2 * ($n % 2); $y = $height/2 * (int) ($n >= 2); imagefilledrectangle($im, $x, $y, $x + $width/2, $y + $height/2, $color); } // Make a perfect circle in the image middle. $color = imagecolorallocate($im, rand(0, 255), rand(0, 255), rand(0, 255)); $smaller_dimension = min($width, $height); $smaller_dimension = ($smaller_dimension % 2) ? $smaller_dimension : $smaller_dimension; imageellipse($im, $width/2, $height/2, $smaller_dimension, $smaller_dimension, $color); $save_function = 'image'. ($extension == 'jpg' ? 'jpeg' : $extension); $save_function($im, drupal_realpath($destination)); $images[$extension][$min_resolution][$max_resolution][$destination] = $destination; } return $destination; }