How can output buffering be used to return graphic data in PHP?

Output buffering can be used in PHP to capture graphic data before it is sent to the browser, allowing for manipulation or processing before displaying the final output. This can be useful when working with images or other graphic content that needs to be modified dynamically. By using output buffering, you can store the graphic data in a variable and then manipulate it as needed before finally outputting it to the browser.

<?php
ob_start(); // Start output buffering

// Generate or manipulate graphic data here
$image = imagecreate(200, 200);
$bg_color = imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 0, 0, 0);
imagestring($image, 4, 50, 50, 'Hello World', $text_color);

// Output the graphic data
header('Content-Type: image/png');
imagepng($image);

// End output buffering and store the graphic data in a variable
$image_data = ob_get_clean();

// Manipulate the graphic data further if needed
// For example, save it to a file or apply additional filters

// Output the final graphic data to the browser
echo $image_data;
?>