initial commit
This commit is contained in:
104
SubProject/QRCodeLib/util/QRCodeUtility.cs
Normal file
104
SubProject/QRCodeLib/util/QRCodeUtility.cs
Normal file
@@ -0,0 +1,104 @@
|
||||
using System;
|
||||
using System.Text;
|
||||
|
||||
namespace ThoughtWorks.QRCode.Codec.Util
|
||||
{
|
||||
|
||||
/*
|
||||
* This class must be modified as a adapter class for "edition dependent" methods
|
||||
*/
|
||||
|
||||
public class QRCodeUtility
|
||||
{
|
||||
// Because CLDC1.0 does not support Math.sqrt(), we have to define it manually.
|
||||
// faster sqrt (GuoQing Hu's FIX)
|
||||
public static int sqrt(int val)
|
||||
{
|
||||
// using estimate method from http://www.azillionmonkeys.com/qed/sqroot.html
|
||||
// Console.out.print(val + ", " + (int)Math.sqrt(val) + ", ");
|
||||
int temp, g = 0, b = 0x8000, bshft = 15;
|
||||
do
|
||||
{
|
||||
if (val >= (temp = (((g << 1) + b) << bshft--)))
|
||||
{
|
||||
g += b;
|
||||
val -= temp;
|
||||
}
|
||||
}
|
||||
while ((b >>= 1) > 0);
|
||||
|
||||
return g;
|
||||
}
|
||||
|
||||
// for au by KDDI Profile Phase 3.0
|
||||
// public static int[][] parseImage(Image image) {
|
||||
// int width = image.getWidth();
|
||||
// int height = image.getHeight();
|
||||
// Image mutable = Image.createImage(width, height);
|
||||
// Graphics g = mutable.getGraphics();
|
||||
// g.drawImage(image, 0, 0, Graphics.TOP|Graphics.LEFT);
|
||||
// ExtensionGraphics eg = (ExtensionGraphics) g;
|
||||
// int[][] result = new int[width][height];
|
||||
//
|
||||
// for (int x = 0; x < width; x++) {
|
||||
// for (int y = 0; y < height; y++) {
|
||||
// result[x][y] = eg.getPixel(x, y);
|
||||
// }
|
||||
// }
|
||||
// return result;
|
||||
// }
|
||||
//
|
||||
// public static int[][] parseImage(byte[] imageData) {
|
||||
// return parseImage(Image.createImage(imageData, 0, imageData.length));
|
||||
// }
|
||||
|
||||
|
||||
public static bool IsUniCode(String value)
|
||||
{
|
||||
byte[] ascii = AsciiStringToByteArray(value);
|
||||
byte[] unicode = UnicodeStringToByteArray(value);
|
||||
string value1 = FromASCIIByteArray(ascii);
|
||||
string value2 = FromUnicodeByteArray(unicode);
|
||||
if (value1 != value2)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
public static bool IsUnicode(byte[] byteData)
|
||||
{
|
||||
string value1 = FromASCIIByteArray(byteData);
|
||||
string value2 = FromUnicodeByteArray(byteData);
|
||||
byte[] ascii = AsciiStringToByteArray(value1);
|
||||
byte[] unicode = UnicodeStringToByteArray(value2);
|
||||
if (ascii[0] != unicode[0])
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
public static String FromASCIIByteArray(byte[] characters)
|
||||
{
|
||||
ASCIIEncoding encoding = new ASCIIEncoding();
|
||||
String constructedString = encoding.GetString(characters);
|
||||
return constructedString;
|
||||
}
|
||||
|
||||
public static String FromUnicodeByteArray(byte[] characters)
|
||||
{
|
||||
UnicodeEncoding encoding = new UnicodeEncoding();
|
||||
String constructedString = encoding.GetString(characters);
|
||||
return constructedString;
|
||||
}
|
||||
|
||||
public static byte[] AsciiStringToByteArray(String str)
|
||||
{
|
||||
ASCIIEncoding encoding = new ASCIIEncoding();
|
||||
return encoding.GetBytes(str);
|
||||
}
|
||||
|
||||
public static byte[] UnicodeStringToByteArray(String str)
|
||||
{
|
||||
UnicodeEncoding encoding = new UnicodeEncoding();
|
||||
return encoding.GetBytes(str);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user