remove ECI
This commit is contained in:
@@ -1,128 +0,0 @@
|
||||
/*
|
||||
* Copyright 2008 ZXing authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace ZXing.Common
|
||||
{
|
||||
/// <summary> Encapsulates a Character Set ECI, according to "Extended Channel Interpretations" 5.3.1.1
|
||||
/// of ISO 18004.
|
||||
///
|
||||
/// </summary>
|
||||
/// <author>Sean Owen</author>
|
||||
public sealed class CharacterSetECI : ECI
|
||||
{
|
||||
internal static readonly IDictionary<int, CharacterSetECI> VALUE_TO_ECI;
|
||||
internal static readonly IDictionary<string, CharacterSetECI> NAME_TO_ECI;
|
||||
|
||||
private readonly String encodingName;
|
||||
|
||||
public String EncodingName
|
||||
{
|
||||
get
|
||||
{
|
||||
return encodingName;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static CharacterSetECI()
|
||||
{
|
||||
VALUE_TO_ECI = new Dictionary<int, CharacterSetECI>();
|
||||
NAME_TO_ECI = new Dictionary<string, CharacterSetECI>();
|
||||
// TODO figure out if these values are even right!
|
||||
addCharacterSet(0, "CP437");
|
||||
addCharacterSet(1, new[] { "ISO-8859-1", "ISO8859_1" });
|
||||
addCharacterSet(2, "CP437");
|
||||
addCharacterSet(3, new[] { "ISO-8859-1", "ISO8859_1" });
|
||||
addCharacterSet(4, new[] { "ISO-8859-2", "ISO8859_2" });
|
||||
addCharacterSet(5, new[] { "ISO-8859-3", "ISO8859_3" });
|
||||
addCharacterSet(6, new[] { "ISO-8859-4", "ISO8859_4" });
|
||||
addCharacterSet(7, new[] { "ISO-8859-5", "ISO8859_5" });
|
||||
addCharacterSet(8, new[] { "ISO-8859-6", "ISO8859_6" });
|
||||
addCharacterSet(9, new[] { "ISO-8859-7", "ISO8859_7" });
|
||||
addCharacterSet(10, new[] { "ISO-8859-8", "ISO8859_8" });
|
||||
addCharacterSet(11, new[] { "ISO-8859-9", "ISO8859_9" });
|
||||
addCharacterSet(12, new[] { "ISO-8859-4", "ISO-8859-10", "ISO8859_10" }); // use ISO-8859-4 because ISO-8859-16 isn't supported
|
||||
addCharacterSet(13, new[] { "ISO-8859-11", "ISO8859_11" });
|
||||
addCharacterSet(15, new[] { "ISO-8859-13", "ISO8859_13" });
|
||||
addCharacterSet(16, new[] { "ISO-8859-1", "ISO-8859-14", "ISO8859_14" }); // use ISO-8859-1 because ISO-8859-16 isn't supported
|
||||
addCharacterSet(17, new[] { "ISO-8859-15", "ISO8859_15" });
|
||||
addCharacterSet(18, new[] { "ISO-8859-3", "ISO-8859-16", "ISO8859_16" }); // use ISO-8859-3 because ISO-8859-16 isn't supported
|
||||
addCharacterSet(20, new[] { "SJIS", "Shift_JIS" });
|
||||
addCharacterSet(21, new[] { "WINDOWS-1250", "CP1250" });
|
||||
addCharacterSet(22, new[] { "WINDOWS-1251", "CP1251" });
|
||||
addCharacterSet(23, new[] { "WINDOWS-1252", "CP1252" });
|
||||
addCharacterSet(24, new[] { "WINDOWS-1256", "CP1256" });
|
||||
addCharacterSet(25, new[] { "UTF-16BE", "UNICODEBIG" });
|
||||
addCharacterSet(26, new[] { "UTF-8", "UTF8" });
|
||||
addCharacterSet(27, "US-ASCII");
|
||||
addCharacterSet(170, "US-ASCII");
|
||||
addCharacterSet(28, "BIG5");
|
||||
addCharacterSet(29, new[] { "GB18030", "GB2312", "EUC_CN", "GBK" });
|
||||
addCharacterSet(30, new[] { "EUC-KR", "EUC_KR" });
|
||||
}
|
||||
|
||||
private CharacterSetECI(int value, String encodingName)
|
||||
: base(value)
|
||||
{
|
||||
this.encodingName = encodingName;
|
||||
}
|
||||
|
||||
private static void addCharacterSet(int value, String encodingName)
|
||||
{
|
||||
var eci = new CharacterSetECI(value, encodingName);
|
||||
VALUE_TO_ECI[value] = eci; // can't use valueOf
|
||||
NAME_TO_ECI[encodingName] = eci;
|
||||
}
|
||||
|
||||
private static void addCharacterSet(int value, String[] encodingNames)
|
||||
{
|
||||
var eci = new CharacterSetECI(value, encodingNames[0]);
|
||||
VALUE_TO_ECI[value] = eci; // can't use valueOf
|
||||
foreach (string t in encodingNames)
|
||||
{
|
||||
NAME_TO_ECI[t] = eci;
|
||||
}
|
||||
}
|
||||
|
||||
/// <param name="value">character set ECI value
|
||||
/// </param>
|
||||
/// <returns> {@link CharacterSetECI} representing ECI of given value, or null if it is legal but
|
||||
/// unsupported
|
||||
/// </returns>
|
||||
/// <throws> IllegalArgumentException if ECI value is invalid </throws>
|
||||
public static CharacterSetECI getCharacterSetECIByValue(int value)
|
||||
{
|
||||
if (value < 0 || value >= 900)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return VALUE_TO_ECI[value];
|
||||
}
|
||||
|
||||
/// <param name="name">character set ECI encoding name
|
||||
/// </param>
|
||||
/// <returns> {@link CharacterSetECI} representing ECI for character encoding, or null if it is legal
|
||||
/// but unsupported
|
||||
/// </returns>
|
||||
public static CharacterSetECI getCharacterSetECIByName(String name)
|
||||
{
|
||||
return NAME_TO_ECI[name.ToUpper()];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
/*
|
||||
* Copyright 2008 ZXing authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
using System;
|
||||
namespace ZXing.Common
|
||||
{
|
||||
|
||||
/// <summary> Superclass of classes encapsulating types ECIs, according to "Extended Channel Interpretations"
|
||||
/// 5.3 of ISO 18004.
|
||||
///
|
||||
/// </summary>
|
||||
/// <author> Sean Owen
|
||||
/// </author>
|
||||
/// <author>www.Redivivus.in (suraj.supekar@redivivus.in) - Ported from ZXING Java Source
|
||||
/// </author>
|
||||
public abstract class ECI
|
||||
{
|
||||
virtual public int Value
|
||||
{
|
||||
get
|
||||
{
|
||||
return value_Renamed;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//UPGRADE_NOTE: Final was removed from the declaration of 'value '. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1003'"
|
||||
private int value_Renamed;
|
||||
|
||||
internal ECI(int value_Renamed)
|
||||
{
|
||||
this.value_Renamed = value_Renamed;
|
||||
}
|
||||
|
||||
/// <param name="value">ECI value
|
||||
/// </param>
|
||||
/// <returns> {@link ECI} representing ECI of given value, or null if it is legal but unsupported
|
||||
/// </returns>
|
||||
/// <throws> IllegalArgumentException if ECI value is invalid </throws>
|
||||
public static ECI getECIByValue(int value_Renamed)
|
||||
{
|
||||
if (value_Renamed < 0 || value_Renamed > 999999)
|
||||
{
|
||||
throw new System.ArgumentException("Bad ECI value: " + value_Renamed);
|
||||
}
|
||||
if (value_Renamed < 900)
|
||||
{
|
||||
// Character set ECIs use 000000 - 000899
|
||||
return CharacterSetECI.getCharacterSetECIByValue(value_Renamed);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -54,7 +54,7 @@ namespace ZXing.QrCode.Internal
|
||||
|
||||
try
|
||||
{
|
||||
CharacterSetECI currentCharacterSetECI = null;
|
||||
// CharacterSetECI currentCharacterSetECI = null;
|
||||
bool fc1InEffect = false;
|
||||
Mode mode;
|
||||
do
|
||||
@@ -96,6 +96,7 @@ namespace ZXing.QrCode.Internal
|
||||
}
|
||||
else if (mode == Mode.ECI)
|
||||
{
|
||||
/*
|
||||
// Count doesn't apply to ECI
|
||||
int value = parseECIValue(bits);
|
||||
currentCharacterSetECI = CharacterSetECI.getCharacterSetECIByValue(value);
|
||||
@@ -103,6 +104,7 @@ namespace ZXing.QrCode.Internal
|
||||
{
|
||||
return null;
|
||||
}
|
||||
* */
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -135,7 +137,7 @@ namespace ZXing.QrCode.Internal
|
||||
}
|
||||
else if (mode == Mode.BYTE)
|
||||
{
|
||||
if (!decodeByteSegment(bits, result, count, currentCharacterSetECI, byteSegments, hints))
|
||||
if (!decodeByteSegment(bits, result, count, byteSegments, hints))
|
||||
return null;
|
||||
}
|
||||
else if (mode == Mode.KANJI)
|
||||
@@ -301,7 +303,6 @@ namespace ZXing.QrCode.Internal
|
||||
private static bool decodeByteSegment(BitSource bits,
|
||||
StringBuilder result,
|
||||
int count,
|
||||
CharacterSetECI currentCharacterSetECI,
|
||||
IList<byte[]> byteSegments,
|
||||
IDictionary<DecodeHintType, object> hints)
|
||||
{
|
||||
@@ -317,19 +318,8 @@ namespace ZXing.QrCode.Internal
|
||||
readBytes[i] = (byte)bits.readBits(8);
|
||||
}
|
||||
String encoding;
|
||||
if (currentCharacterSetECI == null)
|
||||
{
|
||||
// The spec isn't clear on this mode; see
|
||||
// section 6.4.5: t does not say which encoding to assuming
|
||||
// upon decoding. I have seen ISO-8859-1 used as well as
|
||||
// Shift_JIS -- without anything like an ECI designator to
|
||||
// give a hint.
|
||||
encoding = StringUtils.guessEncoding(readBytes, hints);
|
||||
}
|
||||
else
|
||||
{
|
||||
encoding = currentCharacterSetECI.EncodingName;
|
||||
}
|
||||
encoding = StringUtils.guessEncoding(readBytes, hints);
|
||||
|
||||
try
|
||||
{
|
||||
result.Append(Encoding.GetEncoding(encoding).GetString(readBytes, 0, readBytes.Length));
|
||||
|
||||
@@ -78,12 +78,10 @@
|
||||
<Compile Include="3rd\zxing\common\BitArray.cs" />
|
||||
<Compile Include="3rd\zxing\common\BitMatrix.cs" />
|
||||
<Compile Include="3rd\zxing\common\BitSource.cs" />
|
||||
<Compile Include="3rd\zxing\common\CharacterSetECI.cs" />
|
||||
<Compile Include="3rd\zxing\common\DecoderResult.cs" />
|
||||
<Compile Include="3rd\zxing\common\DefaultGridSampler.cs" />
|
||||
<Compile Include="3rd\zxing\common\DetectorResult.cs" />
|
||||
<Compile Include="3rd\zxing\common\detector\MathUtils.cs" />
|
||||
<Compile Include="3rd\zxing\common\ECI.cs" />
|
||||
<Compile Include="3rd\zxing\common\GlobalHistogramBinarizer.cs" />
|
||||
<Compile Include="3rd\zxing\common\GridSampler.cs" />
|
||||
<Compile Include="3rd\zxing\common\HybridBinarizer.cs" />
|
||||
|
||||
Reference in New Issue
Block a user