我在C#中使用此代码来解码(不检测)QRCode并且它可以工作:
LuminanceSource ls = new RGBLuminanceSource(image, image.Width, image.Height);
Result result = new QRCodeReader().decode(new BinaryBitmap(new HybridBinarizer(ls)));
Run Code Online (Sandbox Code Playgroud)
现在我想在一个更复杂的图像中检测一个QRCode,其中包含许多其他的东西,如图像和文本.我无法理解如何实现这一点,因为我找不到任何样本并将Bitmap(C#)转换为Bitmatrix for Detector(zxing)并不是那么直接.
有没有人有一段代码可以给我?
非常感谢
我尝试这个代码,但我得到一个ReaderException:
代码:
LuminanceSource ls = new RGBLuminanceSource(bitmap, bitmap.Width, bitmap.Height);
QRCodeMultiReader multiReader = new QRCodeMultiReader();
Result[] rs = multiReader.decodeMultiple(new BinaryBitmap(new HybridBinarizer(ls)), hints);
return rs[0].Text;
Run Code Online (Sandbox Code Playgroud)
例外
com.google.zxing.ReaderException:
in com.google.zxing.qrcode.detector.FinderPatternFinder.selectBestPatterns()
in com.google.zxing.qrcode.detector.FinderPatternFinder.find(Hashtable hints)
in com.google.zxing.qrcode.detector.Detector.detect(Hashtable hints)
in com.google.zxing.qrcode.QRCodeReader.decode(BinaryBitmap image, Hashtable hints)
in com.google.zxing.qrcode.QRCodeReader.decode(BinaryBitmap image)
in ...Logic.BarCodeManager.QRCodeReader(Bitmap bitmap) in
Run Code Online (Sandbox Code Playgroud)
我刚刚尝试用我的iPhone上的应用程序扫描打印的QRCode(帖子顶部的代码片段),它运行良好!所以问题肯定在检测/解码阶段.
我知道这是一个非常普遍的问题,但我变得疯了.
我用过这段代码:
String ucs2Content = new String(bufferToConvert, inputEncoding);
byte[] outputBuf = ucs2Content.getBytes(outputEncoding);
return outputBuf;
Run Code Online (Sandbox Code Playgroud)
但我读到最好使用CharsetDecoder和CharsetEncoder(我的内容有一些字符可能在目标编码之外).我刚刚写了这段代码,但是有一些问题:
// Create the encoder and decoder for Win1252
Charset charsetInput = Charset.forName(inputEncoding);
CharsetDecoder decoder = charsetInput.newDecoder();
Charset charsetOutput = Charset.forName(outputEncoding);
CharsetEncoder encoder = charsetOutput.newEncoder();
// Convert the byte array from starting inputEncoding into UCS2
CharBuffer cbuf = decoder.decode(ByteBuffer.wrap(bufferToConvert));
// Convert the internal UCS2 representation into outputEncoding
ByteBuffer bbuf = encoder.encode(CharBuffer.wrap(cbuf));
return bbuf.array();
Run Code Online (Sandbox Code Playgroud)
实际上,这段代码在缓冲区附加了一个空字符序列 !!!!!
有人能告诉我问题出在哪里?我不熟悉Java中的编码转换.
有没有更好的方法来转换Java中的编码?
我需要通过Java类ZipOutputStream压缩一个Big文件(~450 MB).这个大维度导致我的JVM堆空间出现"OutOfMemory"错误.发生这种情况是因为"zos.write(...)"方法在压缩之前将所有文件内容存储在内部字节数组中进行压缩.
origin = new BufferedInputStream(fi, BUFFER);
ZipEntry entry = new ZipEntry(filePath);
zos.putNextEntry(entry);
int count;
while ((count = origin.read(data, 0, BUFFER)) != -1)
{
zos.write(data, 0, count);
}
origin.close();
Run Code Online (Sandbox Code Playgroud)
自然的解决方案是扩大JVM的堆内存空间,但我想知道是否有一种方法以流方式写入这些数据.我不需要高压缩率,所以我也可以改变算法.
有没有人对此有所了解?
尽管我尽了最大努力进行优化,但我有一个可能需要很长时间才能执行的正则表达式。我希望能够在它停止的情况下中断它,并继续执行程序的其余部分
其他语言(如 C#)具有用于正则表达式执行的超时属性,我想知道为什么 Python 3 似乎没有相同的方法。
Python 3 内部有一个最大执行时间,因为很长一段时间后,正则表达式中止并继续执行。这是真的吗?
我想在 python 3 上分析这个问题并使用独立于平台的方法(我看到装饰器仅在带有信号的 NIX 操作系统上工作......)
也许答案是使用关于如何在 Python 中停止函数的更通用方法来管理这个问题,例如如何在 Python 中向函数添加超时或使用超时停止 Python 中的函数。
我怎样才能实现这样的超时?
我已将SMTPAppender配置到我的Java应用程序中.
<appender name="AdministratorEmail" class="org.apache.log4j.net.SMTPAppender">
<param name="Threshold" value="info" />
<param name="BufferSize" value="512" />
<param name="SMTPHost" value="smtp.sss.intranet" />
<param name="From" value="adminEbookMaker@sss.intranet" />
<param name="To" value="user@sss.it" />
<param name="Subject" value="errors" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{ISO8601}]%n%n%-5p%n%n%c%n%n%m%n%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="info" />
<param name="LevelMax" value="fatal" />
</filter>
</appender>
Run Code Online (Sandbox Code Playgroud)
我只收到ERROR日志类型而不是INFO类型!我更改了LevelMin,但没有,我插入了Thresold,但没有!
有人有任何建议吗?
我们在Office 2007中的.NET 3.5中开发了一个复杂的应用程序.在某些表单中,我们使用WebBrowser控件导航到我们的HTML页面.问题是,在某些机器上,当控件调用"Navigate"方法时,它会引发异常"错误HRESULT E_FAIL已从调用COM组件返回".
从堆栈跟踪中我们注意到在调用Navigate方法时异常来自WebBrowser控件:
in System.Windows.Forms.UnsafeNativeMethods.IWebBrowser2.Navigate2
(Object& URL, Object& flags, Object& targetFrameName, Object& postData,
Object& headers)
in System.Windows.Forms.WebBrowser.PerformNavigate2(Object& URL, Object&
flags, Object& targetFrameName, Object& postData, Object& headers)
in System.Windows.Forms.WebBrowser.PerformNavigateHelper(String
urlString, Boolean newWindow, String targetFrameName, Byte[] postData,
String headers)
in System.Windows.Forms.WebBrowser.set_Url(Uri value)
in System.Windows.Forms.WebBrowser.set_DocumentStream(Stream value)
in System.Windows.Forms.WebBrowser.set_DocumentText(String value)
Run Code Online (Sandbox Code Playgroud)
PC是带有IE8和Office 2007 Service Pack 2的VISTA.我们使用Visual Studio 2010和VSTO 3.0.
非常感谢
我对ePub格式比较新,但是如果我理解的话,从XHTML或PDF内容开始以编程方式创建ePub可能意味着:
所以我的问题是,是否有某种高级Java API来执行这些步骤.当然我可以在Java中使用ZIP for ZIP,但它是否存在更高级的工具?
非常感谢
------编辑-------
我已经开发了一个开源项目来做到这一点!
我正在尝试执行一个简单的测试代码:
using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;
namespace TestMono
{
public class TesterManager
{
public TesterManager ()
{
Console.WriteLine("Test");
Path.GetTempPath();
foreach (var i in new int[] { 1, 2, 3, 4, 5}.Where(n => n % 2 == 0))
{
Console.WriteLine(i);
}
List<string> ar= new List<string>();
ar.Add("1"); ar.Add("2");
var lb = ar.Where(n => n=="2");
}
}
}
Run Code Online (Sandbox Code Playgroud)
编译该代码我有两个错误:
Esecuzione compilazione principale...
/Library/Frameworks/Mono.framework/Versions/2.6.4/bin/gmcs /noconfig "/out:/Users/roberto/Projects/TestMono/TestMono/bin/Debug/TestMono.exe" /nologo /warn:4 /debug:+ /debug:full /optimize- /codepage:utf8 /platform:x86 "/define:DEBUG" /t:exe "/Users/roberto/Projects/TestMono/TestMono/TesterManager.cs" "/Users/roberto/Projects/TestMono/TestMono/Main.cs"
Compilation failed: 2 error(s), …Run Code Online (Sandbox Code Playgroud) 我使此代码正常工作!
我在设计时将用户控件放在窗体中的UserControl中有一个按钮。一切运行良好,当我在按钮事件中调用this.ParentForm时,它正确地向我返回了(唯一的)父窗体。
重构之后,我将带有按钮的UserControl移到了另一个NameSpace,并且相同的代码不再起作用。this.ParentForm现在为NULL!
我读了MSDN站点,它说仅当控件托管在IE或其他上下文中时,this.ParentForm返回null。但是我只移动了名称空间!
有人有主意吗?
我不能使用其他构造函数将其传递给父窗体,因为在设计时Visual Studio不会渲染该窗体。
可能重复:
4GB iMac OSX 10.6.3 Snow Leopard(32位)无法通过Java获取2542个线程
我正在运行一个线程密集型应用程序到我的Mac 64位,内存为8 GB.我试图改变VM参数的选项(进入Eclipse和cmd行)但是对于2500线程我总是得到"线程中的异常"主"java.lang.OutOfMemoryError:无法创建新的本机线程".
当它崩溃时我看到堆内存只有100 MB ...
怎么了?