我正在为Windows Phone 8创建一个AR镜头.我玩过镜头和相机功能,这一切都很好.我可以在屏幕上放置图标和图片,并操纵用手机拍摄的照片.但我需要做的是能够在拍摄快照之前实时读取相机屏幕.
示例:面部镜头必须扫描实时屏幕,检查我假设的像素,以计算某人的鼻子/眼睛/等在实时相机屏幕上放置小丑鼻子或眼镜等的位置.
我可以用图片做到这一点,但似乎无法找到一种方法来访问相机中的当前帧,而无需拍照.基本上,我想要扫描相机应用程序中显示的每个帧的每个像素.我知道这是可能的,其他镜头可以这样做,但我应该在哪里找到正确的方法来访问它.
我有一个SOAP Web服务,我从中提取各种信息.大多数功能都正常工作,但我需要一些函数来返回一个List.
所述WebMethod的定义如下:
List<MyType> myTypes = new List<MyTypes>();
[WebMethod]
public List<MyType> GetAllMyTypes()
{
string sql = "SELECT * FROM MyType";
DataTable dt = new DataTable();
dt = Globals.GLS_DataQuery(sql);
List<MyType> myType = new List<MyType>();
foreach (DataRow row in dt.Rows)
{
MyType myType = new MyType()
{
ID = (int)row["Id"]
};
myTypes.Add(myType);
}
return myTypes;
}
Run Code Online (Sandbox Code Playgroud)
Web服务在主项目中引用,并通过以下方式调用:
client.GetAllMyTypesCompleted += client_GetAllMyTypesCompleted;
client.GetAllMyTypesAsync();
Run Code Online (Sandbox Code Playgroud)
client_GetAllMyTypesCompleted 定义为:
private void client_GetAllMyTypesCompleted(object sender, GetAllMyTypesCompletedEventArgs e)
{
var collection = e.Result;
}
Run Code Online (Sandbox Code Playgroud)
在这里,TargetInvocationException抛出,特别是关于 …
我基于date等于datetime字段的字段返回行.他们显然只是在格式时直接匹配,dd/MM/yyyy = dd/MM/yyyy 00:00:00但我想忽视时间.
我尝试了3种方法,它们都有效,但我想知道什么是最好的.
1 - CONVERT(varchar(10),MyDate,103) = CONVERT(varchar(10),MyDateTime,103))
2 - MyDate = CONVERT(date,MyDateTime)
3 - MyDate = CAST(MyDateTime AS date)
4 - MyDate = DATEADD(dd, DATEDIFF(dd, 0, MyDateTime), 0)
对我来说,#1应该是最慢的,转换为字符串然后使用字符串比较肯定应该是最低效的.但在测试中它是最快的!以下是我的测试:
1 - 303ms平均
平均2 - 284毫秒
3 - 平均273毫秒
平均4 - 1745毫秒
测试的样本量约为300,000
是否有一个原因?第一种选择真的是最好的选择吗?
编辑:更改测试值以反映为300k记录每次运行10次的测试.除了DATEADD/DATEDIFFTim Schmelter提到的方法之外,改变结果以显示所有结果非常相似.这似乎是效率最低的.
关于如何在SOAP请求中添加附件,我处于松散状态.我们必须使用java内置的第三方Web服务,这是我遇到的最复杂的事情.我们使用的任何其他Web服务(需要附件)都有方法或属性来添加附件.简单.但是,这个没有提供这样的方法.
我们一起得到了一个SOAP消息的版本,这与我们想要的XML完全一样,但它是我们无法添加的文件的MIME部分.
例:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
<soap:Header>
<payloadManifest xmlns="http://<examplePayload>">
<manifest contentID="Content0" namespaceURI="http://<exampleManifest>" element="ProcessRepairOrder" version="2.01" />
</payloadManifest>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsu:Created>2011-12-19T15:25:13Z</wsu:Created>
<wsu:Expires>2011-12-19T15:30:00Z</wsu:Expires>
</wsu:Timestamp>
<wsse:UsernameToken><wsse:Username>username</wsse:Username><wsse:Password>password</wsse:Password></wsse:UsernameToken></wsse:Security></soap:Header><soap:Body><ProcessMessage xmlns="<examplePayload"><payload><content id="Content0">
<s:ProcessRepairOrder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://example.xsd" xmlns:s="http://<exampleManifest>" xmlns:gwm="http://example">
<s:ApplicationArea>
<s:Sender>
<s:Component>Test</s:Component>
<s:Task>ProcessAttachment</s:Task>
<s:CreatorNameCode>Test</s:CreatorNameCode>
<s:SenderNameCode>XX</s:SenderNameCode>
<s:DealerNumber>111111</s:DealerNumber>
<s:DealerCountry>GB</s:DealerCountry>
</s:Sender>
<s:CreationDateTime>2010-03-26T13:37:05Z</s:CreationDateTime>
<s:Destination>
<s:DestinationNameCode>GM</s:DestinationNameCode>
<s:DestinationURI/>
<s:DestinationSoftwareCode>GWM</s:DestinationSoftwareCode>
</s:Destination>
</s:ApplicationArea>
<s:DataArea xsi:type="gwm:DataAreaExtended">
<s:Process/>
<s:RepairOrder>
<s:Header xsi:type="gwm:RepairOrderHeaderExtended">
<s:DocumentId/>
</s:Header>
<s:Job xsi:type="gwm:JobExtended">
<s:JobNumber/>
<s:OperationId>Test</s:OperationId>
<s:OperationName/>
<s:CodesAndComments/>
<s:Diagnostics/>
<s:WarrantyClaim xsi:type="gwm:WarrantyClaimExtended">
<s:OEMClaimNumber>00112233445566778899</s:OEMClaimNumber>
<gwm:Attachment>
<gwm:File><xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:test.gif"/></gwm:File>
<gwm:Filename>test.gif</gwm:Filename>
</gwm:Attachment>
</s:WarrantyClaim>
<s:LaborActualHours>0.0</s:LaborActualHours>
<s:Technician/>
</s:Job>
</s:RepairOrder>
</s:DataArea>
</s:ProcessRepairOrder> …Run Code Online (Sandbox Code Playgroud) 我正在使用一个Web服务,我在其中发送带有附件的请求,我们从服务器收到包含各种信息的响应.我已经记录了在另一个问题中一起获取请求的一些问题.添加SOAP请求的附件但这个位已经解决,现在响应上出现了另一个问题.
我们收到响应确定但是抛出一个错误说明:
响应不是格式良好的XML.
InnerException是:
WSE1608:没有XOP部件位于指定content-id的流中:<rootpart*36875c60-630c-4e23-9e74-f9a9c7547fc7@example.jaxws.sun.com>
返回的xml如下所示:
--uuid:36875c60-630c-4e23-9e74-f9a9c7547fc7
Content-Type: application/xop+xml;charset=utf-8;type="text/xml";
Content-ID: <rootpart*36875c60-630c-4e23-9e74-f9a9c7547fc7@example.jaxws.sun.com>
content-transfer-encoding: binary
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<payloadManifest xmlns="http://(namespace)">
<manifest contentID="content0" element="ProcessAttachment" namespaceURI="http://(namespace)" version="2.01"/>
</payloadManifest>
</soapenv:Header>
<soapenv:Body>
<tran:ProcessMessageResponse xmlns="http://(namespace)" xmlns:ns2="http://(ns2Namespace)" xmlns:ns3="http://(ns3Namespace)" xmlns:tran="http://(tranNamespace)">
<tran:payload>
<tran:content id="content0">
<s:ShowServiceProcessingAdvisory xmlns:s="http://(sNamespace)">
<s:ApplicationArea>
<s:Sender>
<s:Component>Global Warranty Management</s:Component>
<s:Task>ShowAttachments</s:Task>
<s:CreatorNameCode>Creator</s:CreatorNameCode>
<s:SenderNameCode>GM</s:SenderNameCode>
</s:Sender>
<s:CreationDateTime>2012-01-10T12:58:27Z</s:CreationDateTime>
<s:Destination>
<s:DestinationNameCode>XX</s:DestinationNameCode>
<s:DealerNumber>234567</s:DealerNumber>
<s:DealerCountry>US</s:DealerCountry>
</s:Destination>
</s:ApplicationArea>
<s:DataArea>
<s:Show/>
<s:ServiceProcessingAdvisory>
<s:Header>
<s:SecondaryDealerNumber>253909</s:SecondaryDealerNumber>
<s:Disposition>
<s:RepairOrder>
<s:WarrantyClaim xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:WarrantyClaimExtended">
<s:OEMClaimNumber>00112233445566778899</s:OEMClaimNumber>
<gwm:Attachment xmlns:gwm="http://(gwmNamespace)">
<gwm:AttachmentId>5678987</gwm:AttachmentId>
<gwm:Filename>14.jpg</gwm:Filename>
</gwm:Attachment>
</s:WarrantyClaim>
</s:RepairOrder>
</s:Disposition>
</s:Header>
</s:ServiceProcessingAdvisory> …Run Code Online (Sandbox Code Playgroud) 如果您使用谷歌浏览器输入http://jsfiddle.net/WQCav/,您将在单击黑色图像后看到它们是结果中的行.如果我没有在代码中写这些行,这些行来自哪里?为什么问题只出在Google Chrome上?
我从我的Android应用程序调用Web服务.我通过应用程序对此服务进行了许多不同的调用,并且每个调用都在不到一秒的时间内返回数据,除了一个.即使实际的Web服务调用接近即时,我的一个呼叫也可能需要一分钟才能返回数据.该行出现问题:
transport.call(SOAP_ACTION, soapEnvelope);
Run Code Online (Sandbox Code Playgroud)
这被调用,并且几乎是瞬间从Web服务返回值.但是到达下一行可能需要一分钟:
SoapObject result = (SoapObject) soapEnvelope.bodyIn;
Run Code Online (Sandbox Code Playgroud)
Web服务返回数据和应用程序命中下一行(上图)之间发生了什么?有没有办法减少这种延迟?有什么简单的检查吗?
提出了赏金,因为唯一的答案并没有为Android提供良好的实现.是否有与Android兼容的更快速的实现?或者SimpleXML是我得到的最佳性能?
我是Java和Android开发的新手,因此不知道将xml字符串反序列化为对象的正确过程.我发现了一种适用于的方法:
public static Object deserializeXMLToObject(String xmlFile,Object objClass) throws Exception
{
try
{
InputStream stream = new ByteArrayInputStream(xmlFile.getBytes("UTF-8"));
Serializer serializer = new Persister();
objClass = serializer.read(objClass, stream);
return objClass;
}
catch (Exception e)
{
return e;
}
}
Run Code Online (Sandbox Code Playgroud)
xmlFile(错误命名的)xml字符串在哪里,并且objClass是我想要反序列化的类的空类.这通常是其他对象的列表.
示例类:
@Root(name="DepartmentList")
public class DepartmentList {
@ElementList(entry="Department", inline=true)
public List<Department> DepartmentList =new ArrayList<Department>();
public boolean FinishedPopulating = false;
}
Run Code Online (Sandbox Code Playgroud)
系类:
public class Department {
@Element(name="DeptID")
private String _DeptID ="";
public String DeptID()
{
return _DeptID;
}
public void …Run Code Online (Sandbox Code Playgroud) 编辑:这不是jQuery从SharePoint公告列表创建适当的标记以使用jCarouselLite的问题.这似乎是jCarouselLite中的一个问题.我已经用另外的jsfiddle完成了相应的标记,而不是jQuery/javascript转换代码,问题仍然存在.
您可以在http://jsfiddle.net/ayatollah/6RKNx/上看到问题
同样,它只是1或2个列表项的问题.3+工作正常.我应该更改标记,我们的jCarouselLite调用代码来解决这个问题吗?
Bounty将尽快提供!
ORIGINAL ================================================= ==============================
我在Sharepoint站点中有一个公告列表,我想将其转换为jCarousel.公告列表呈现为一个表,因此我将一些jQuery代码放在一起,将其转换为所需的ul结构.
jQuery似乎正在做它的工作,但jCarousel给出了一些奇怪的行为.第一个公告显示应该,然后第二个公告按原样滚动.但是,对于此后的每个滚动,它会闪烁第一个公告,然后在第二个公告中滚动.什么时候应该再次滚动第一个.
我有它正常工作,但它显示空白公告,所以我介绍了一些代码来过滤掉空白公告.这是一个向您展示问题的jsfiddle.
我从前面的代码中做的唯一更改是添加额外的布尔值:
&& $(listitem).text() != "\xa0"
Run Code Online (Sandbox Code Playgroud)
见:http://jsfiddle.net/RzeEX/3/
但是,在上面的小提琴中,代码与前一个完全相同,但在我的服务器上它显示了一个额外的空白通知.不知道为什么我不能在这里复制它.
无论如何,任何人都有任何想法?
编辑:实际上只是测试它超过2个公告,它似乎工作.见http://jsfiddle.net/RzeEX/4/
它现在按预期工作,但有2个公告,它仍然破产,有1个公告,没有显示!它必须与jQuery有关,因为我相信jCarouselLite插件可以工作.
有关单一公告,请参见http://jsfiddle.net/RzeEX/5/.
在请求方,我的代码如下所示
var myList = new List<int> {1,2,3};
var content =
new FormUrlEncodedContent
(
new KeyValuePair<string, string>[]
{
KeyValuePair.Create("myList", myList.ToString())
}
);
//Make Post Request here
Run Code Online (Sandbox Code Playgroud)
在接收端,我希望我的控制器方法是
[HttpPost]
public void MyMethod(List<int> myList)
{
\\ Doing stuff here
}
Run Code Online (Sandbox Code Playgroud)
.net ×3
soap ×3
android ×2
c# ×2
java ×2
javascript ×2
web-services ×2
wse ×2
attachment ×1
azure ×1
camera ×1
comparison ×1
date ×1
datetime ×1
jcarousel ×1
jquery ×1
jsfiddle ×1
ksoap2 ×1
mtom ×1
performance ×1
post ×1
real-time ×1
response ×1
sql ×1
sql-server ×1
url ×1
xamarin ×1
xml ×1