If you have a Rich Text Box control named logo on a browser-compatible InfoPath form template, and you want to display an image namedlogo.jpg that is stored in aSharePoint Picture Library namedMyPictureLib, you could use the following C# code in theLoading event of your InfoPath form template:
XPathNavigator root = MainDataSource.CreateNavigator();
XPathNavigator logoField = root.SelectSingleNode(
"//my:logo", NamespaceManager);
string url = "http://<ServerName>/MyPictureLib/logo.jpg";
logoField.InnerXml = "<img xmlns=\"http://www.w3.org/1999/xhtml\" src=\""
+ url + "\"/>";
where ServerName is the name of the SharePoint server or SharePoint site on which the picture library is located.
And remember that since you have written code for the browser-compatible InfoPath form template, you’ll have to perform an administrator-approved InfoPath form deployment.
Updated July 18, 2009:
If you prefer to use Visual Basic, use the following code:
Dim root As XPathNavigator = MainDataSource.CreateNavigator()
Dim logoField As XPathNavigator = root.SelectSingleNode( _
"//my:logo", NamespaceManager)
Dim url As String = "http://<ServerName>/MyPictureLib/logo.jpg"
logoField.InnerXml = "<img xmlns=""http://www.w3.org/1999/xhtml"" src=""" _
& url & """/>"
http://www.bizsupportonline.net/blog/2009/07/add-logo-sharepoint-picture-library-infopath-browser-form/