The approved answer and the other CSS tricks didn't worked for me (in custom edit form).
I was able to achieve this by removing the table tbody which contains the people picker control and writing the user name into the table. ( I just wanted to make the first people picker in the custom edit form as read only. That's why index 0 )
$("table[id$='UserField_OuterTable'] tbody")[0].remove();
var markup = $("input[id$='HiddenEntityDisplayText']")[0].value;
$("table[id$='UserField_OuterTable']")[0].append(markup);
In default edit form , need to put the code (approved answer) inside
SP.SOD.executeFunc('clientpeoplepicker.js', 'SPClientPeoplePicker', function (){});
ie,
SP.SOD.executeFunc('clientpeoplepicker.js', 'SPClientPeoplePicker', function ()
{
$("[class='sp-peoplepicker-delImage']").css({ 'display' : 'none'});
$("[class='sp-peoplepicker-editorInput']").css({ 'display' : 'none'});
});