An image block looks basically like this:
$image = new Kirby\Cms\Block([
'content' => [
'location' => 'kirby',
'image' => [
"dark-forest.jpg"
],
],
'type' => 'image',
]);
$blocks = $page->text()->toBlocks();
$blocks = $blocks->add(new Kirby\Cms\Blocks([$image]));
$kirby->impersonate('kirby');
$page->update([
'text' => json_encode($blocks->toArray()),
]);