小编rob*_*bob的帖子

示例代码,用于检测图像中的QRCode

我在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)并不是那么直接.

有没有人有一段代码可以给我?

非常感谢


UPDATE


我尝试这个代码,但我得到一个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)

更新02/12/2011


我刚刚尝试用我的iPhone上的应用程序扫描打印的QRCode(帖子顶部的代码片段),它运行良好!所以问题肯定在检测/解码阶段.

c# qr-code zxing

22
推荐指数
1
解决办法
1万
查看次数

在Java中从Windows 1252转换为UTF8:使用CharsetDecoder/Encoder的空字符

我知道这是一个非常普遍的问题,但我变得疯了.

我用过这段代码:

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 encoding

11
推荐指数
1
解决办法
1万
查看次数

使用Java压缩ZIP中的大文件

我需要通过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的堆内存空间,但我想知道是否有一种方法以流方式写入这些数据.我不需要高压缩率,所以我也可以改变算法.

有没有人对此有所了解?

java zip large-files

8
推荐指数
1
解决办法
1万
查看次数

如何向 Python 3 RegEx 添加超时?

尽管我尽了最大努力进行优化,但我有一个可能需要很长时间才能执行的正则表达式。我希望能够在它停止的情况下中断它,并继续执行程序的其余部分

其他语言(如 C#)具有用于正则表达式执行的超时属性,我想知道为什么 Python 3 似乎没有相同的方法。

Python 3 内部有一个最大执行时间,因为很长一段时间后,正则表达式中止并继续执行。这是真的吗?

我想在 python 3 上分析这个问题并使用独立于平台的方法(我看到装饰器仅在带有信号的 NIX 操作系统上工作......)

也许答案是使用关于如何在 Python 中停止函数的更通用方法来管理这个问题,例如如何在 Python 中向函数添加超时使用超时停止 Python 中的函数

我怎样才能实现这样的超时?

python regex timeout python-3.x python-re

8
推荐指数
1
解决办法
2497
查看次数

使用SMTPAppender我只收到ERROR而不是INFO类型的日志项

我已将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,但没有!

有人有任何建议吗?

java email log4j smtp appender

7
推荐指数
1
解决办法
6160
查看次数

在UnsafeNativeMethods.IWebBrowser2.Navigate2中的HRESULT E_FAIL

我们在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.

非常感谢

c# vsto winforms

7
推荐指数
1
解决办法
1397
查看次数

使用Java API制作ePub

我对ePub格式比较新,但是如果我理解的话,从XHTML或PDF内容开始以编程方式创建ePub可能意味着:

  • 选择HTML或XHTML内容并使用XHTML验证器验证它们(或使用Tydy清除它们)
  • 选择要在ePub中插入的PDF文件
  • 创建XML清单或XML打包文件和TOC文件
  • 将整个文件压缩到.epub文件中
  • 验证ePub(我在Google代码中看到了一些内容)

所以我的问题是,是否有某种高级Java API来执行这些步骤.当然我可以在Java中使用ZIP for ZIP,但它是否存在更高级的工具?

非常感谢

------编辑-------

我已经开发了一个开源项目来做到这一点!

http://scribaebookmake.sourceforge.net/

java api epub

6
推荐指数
1
解决办法
8316
查看次数

Linq不适用于Mac OSX 10.6.4上的MonoDevelop/Mono最新版本

我正在尝试执行一个简单的测试代码:

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)

c# mono

1
推荐指数
1
解决办法
2316
查看次数

ParentForm为null(在Form内UserControl内的Button中)!

我使此代码正常工作!

我在设计时将用户控件放在窗体中的UserControl中有一个按钮。一切运行良好,当我在按钮事件中调用this.ParentForm时,它正确地向我返回了(唯一的)父窗体。

重构之后,我将带有按钮的UserControl移到了另一个NameSpace,并且相同的代码不再起作用。this.ParentForm现在为NULL

我读了MSDN站点,它说仅当控件托管在IE或其他上下文中时,this.ParentForm返回null。但是我只移动了名称空间!

有人有主意吗?

我不能使用其他构造函数将其传递给父窗体,因为在设计时Visual Studio不会渲染该窗体。

c# visual-studio-2008 winforms

1
推荐指数
1
解决办法
2980
查看次数

"java.lang.OutOfMemoryError:无法在64位和8 GB的Mac上创建新的本机线程"!

可能重复:
4GB iMac OSX 10.6.3 Snow Leopard(32位)无法通过Java获取2542个线程

我正在运行一个线程密集型应用程序到我的Mac 64位,内存为8 GB.我试图改变VM参数的选项(进入Eclipse和cmd行)但是对于2500线程我总是得到"线程中的异常"主"java.lang.OutOfMemoryError:无法创建新的本机线程".

当它崩溃时我看到堆内存只有100 MB ...

怎么了?

java memory macos 64-bit

1
推荐指数
1
解决办法
7356
查看次数