The PATCH mechanisms seem like RPC to me. Having an operation that is passed in the payload, i.e. "replace", is awkward.
Why can't you just PATCH a resource?
PATCH /resource
{
"src": "newvalue.png"
}