You could remove some duplication with a getPortraitValue function:
function getPortraitValue($apiData, $key) {
$value$portrait = $apiData['portrait'][$key];$apiData['portrait'];
if (isset($value$portrait[$key])) {
return $value;$portrait[$key];
}
return null;
}
$portrait = new Portrait();
$portrait->setXCoordinate(getPortraitValue($apiData, 'x')
->setYCoordinate(getPortraitValue($apiData, 'y'))
->setWidth(getPortraitValue($apiData, 'w'))
->setHeight(getPortraitValue($apiData, 'h'))
->setOffset(getPortraitValue($apiData, 'offset')
->setUrl(getPortraitValue($apiData, 'url');
return $portrait;