This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch unstable/scribo has been updated
via 9d8ad622a97eb18dec9decd8461b3b05c5f4566c (commit)
via fcbcf9bd9a68e4b0b17565e317a08fd38ee8881f (commit)
from 32b4b85ab922c2384553543763a7eb4989023f6f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
9d8ad62 Small fixes in Scribo.
fcbcf9b Stats correction.
-----------------------------------------------------------------------
Summary of changes:
scribo/ChangeLog | 11 +++++++++++
scribo/scribo/core/stats.hh | 2 +-
scribo/scribo/primitive/extract/lines_pattern.hh | 7 ++++---
scribo/scribo/primitive/extract/non_text.hh | 4 ++--
scribo/scribo/text/merging.hh | 9 ++++++---
scribo/src/primitive/extract/alignments.cc | 1 +
6 files changed, 25 insertions(+), 9 deletions(-)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch julien_temp_paragraphs has been updated
via 3c34377d73d008a4b76275f4498094d20ead4907 (commit)
via 2982cdf5fe2596d9bddf6866dab9019d8be87c29 (commit)
from 6de9f46259689a7e2e125e79da07c3bd7335d8be (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
3c34377 Stats correction.
2982cdf Correcting bug in stats
-----------------------------------------------------------------------
Summary of changes:
scribo/scribo/core/stats.hh | 14 ++++++++------
scribo/scribo/text/merging.hh | 9 ++++++---
2 files changed, 14 insertions(+), 9 deletions(-)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch safe-groups has been deleted
was 397d9adad2d9d3854bb9f6b43fd3b0530af973e3
-----------------------------------------------------------------------
397d9adad2d9d3854bb9f6b43fd3b0530af973e3 tests/unit_test/unit-tests.mk: Regen.
-----------------------------------------------------------------------
hooks/post-receive
--
Olena, a generic and efficient image processing platform
* tests/Makefile.am: Add subdir.
* scribo/util/color_to_hex.hh,
* scribo/util/hex_to_color.hh,
* tests/util/Makefile.am,
* tests/util/color_to_hex.cc,
* tests/util/hex_to_color.cc: New.
---
scribo/ChangeLog | 12 ++
.../serializable.hh => util/color_to_hex.hh} | 54 +++++---
scribo/scribo/util/hex_to_color.hh | 145 ++++++++++++++++++++
scribo/tests/Makefile.am | 3 +-
scribo/tests/{convert => util}/Makefile.am | 11 +-
.../util/color_to_hex.cc} | 18 +--
.../ocr_options.hh => tests/util/hex_to_color.cc} | 30 ++---
7 files changed, 217 insertions(+), 56 deletions(-)
copy scribo/scribo/{core/concept/serializable.hh => util/color_to_hex.hh} (64%)
create mode 100644 scribo/scribo/util/hex_to_color.hh
copy scribo/tests/{convert => util}/Makefile.am (85%)
copy scribo/{demo/viewer/option_widget.cc => tests/util/color_to_hex.cc} (70%)
copy scribo/{demo/viewer/ocr_options.hh => tests/util/hex_to_color.cc} (60%)
diff --git a/scribo/ChangeLog b/scribo/ChangeLog
index e857752..e30b230 100644
--- a/scribo/ChangeLog
+++ b/scribo/ChangeLog
@@ -1,5 +1,17 @@
2011-05-05 Guillaume Lazzara <lazzara(a)fidji.lrde.epita.fr>
+ Add hexadecimal color conversion routines.
+
+ * tests/Makefile.am: Add subdir.
+
+ * scribo/util/color_to_hex.hh,
+ * scribo/util/hex_to_color.hh,
+ * tests/util/Makefile.am,
+ * tests/util/color_to_hex.cc,
+ * tests/util/hex_to_color.cc: New.
+
+2011-05-05 Guillaume Lazzara <lazzara(a)fidji.lrde.epita.fr>
+
Explicitly set vertical or horizontal attribute for separators in
XML output.
diff --git a/scribo/scribo/core/concept/serializable.hh b/scribo/scribo/util/color_to_hex.hh
similarity index 64%
copy from scribo/scribo/core/concept/serializable.hh
copy to scribo/scribo/util/color_to_hex.hh
index 6e661a6..e0ee33f 100644
--- a/scribo/scribo/core/concept/serializable.hh
+++ b/scribo/scribo/util/color_to_hex.hh
@@ -23,42 +23,56 @@
// exception does not however invalidate any other reasons why the
// executable file might be covered by the GNU General Public License.
-#ifndef SCRIBO_CORE_CONCEPT_SERIALIZABLE_HH
-# define SCRIBO_CORE_CONCEPT_SERIALIZABLE_HH
+#ifndef SCRIBO_UTIL_COLOR_TO_HEX_HH
+# define SCRIBO_UTIL_COLOR_TO_HEX_HH
/// \file
///
-/// Concept for serializer visitors.
+/// Convert hexadecimal encoded colors to value::rgb8.
-# include <mln/core/concept/object.hh>
-# include <scribo/core/concept/serialize_visitor.hh>
+
+#include <cstdio>
+#include <iostream>
+#include <string.h>
+#include <mln/value/rgb8.hh>
namespace scribo
{
- /// \brief Link functor concept.
- template <typename E>
- class Serializable : public mln::Object<E>
+ namespace util
{
- public:
- template <typename E2>
- void accept(const SerializeVisitor<E2>& visitor) const;
- };
+ using namespace mln;
+
+ std::string color_to_hex(const value::rgb8& v);
# ifndef MLN_INCLUDE_ONLY
- template <typename E>
- template <typename E2>
- void
- Serializable<E>::accept(const SerializeVisitor<E2>& visitor) const
- {
- exact(visitor).visit(exact(*this));
- }
+ std::string color_to_hex(const value::rgb8& v)
+ {
+ std::string result = "#";
+
+ char buf[3];
+
+ int c = v.red();
+ sprintf(buf, "%.2X", c);
+ result.append(buf);
+
+ c = v.green();
+ sprintf(buf, "%.2X", c);
+ result.append(buf);
+
+ c = v.blue();
+ sprintf(buf, "%.2X", c);
+ result.append(buf);
+
+ return result;
+ }
# endif // ! MLN_INCLUDE_ONLY
+ } // end of namespace scribo::util
} // end of namespace scribo
-#endif // SCRIBO_CORE_CONCEPT_SERIALIZABLE_HH
+#endif // ! SCRIBO_UTIL_COLOR_TO_HEX_HH
diff --git a/scribo/scribo/util/hex_to_color.hh b/scribo/scribo/util/hex_to_color.hh
new file mode 100644
index 0000000..d1368e2
--- /dev/null
+++ b/scribo/scribo/util/hex_to_color.hh
@@ -0,0 +1,145 @@
+// Copyright (C) 2011 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of Olena.
+//
+// Olena is free software: you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation, version 2 of the License.
+//
+// Olena is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Olena. If not, see <http://www.gnu.org/licenses/>.
+//
+// As a special exception, you may use this file as part of a free
+// software project without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to produce
+// an executable, this file does not by itself cause the resulting
+// executable to be covered by the GNU General Public License. This
+// exception does not however invalidate any other reasons why the
+// executable file might be covered by the GNU General Public License.
+
+#ifndef SCRIBO_UTIL_HEX_TO_COLOR_HH
+# define SCRIBO_UTIL_HEX_TO_COLOR_HH
+
+/// \file
+///
+/// Convert hexadecimal encoded colors to value::rgb8.
+
+#include <iostream>
+#include <string>
+#include <vector>
+#include <mln/value/rgb8.hh>
+#include <mln/value/int_u8.hh>
+
+namespace scribo
+{
+
+ namespace util
+ {
+ using namespace mln;
+
+ // \brief Convert hexadecimal encoded colors to value::rgb8.
+ value::rgb8 hex_to_color(const std::string& hex);
+
+
+# ifndef MLN_INCLUDE_ONLY
+
+ namespace internal
+ {
+
+ value::int_u8 convert_from_hex(const std::string& hex)
+ {
+ value::int_u8 value = 0;
+ int a = 0;
+ int b = hex.length() - 1;
+
+ for (; b >= 0; a++, b--)
+ {
+ if (hex[b] >= '0' && hex[b] <= '9')
+ {
+ value += (hex[b] - '0') * (1 << (a * 4));
+ }
+ else
+ {
+ switch (hex[b])
+ {
+ case 'A':
+ case 'a':
+ value += 10 * (1 << (a * 4));
+ break;
+ case 'B':
+ case 'b':
+ value += 11 * (1 << (a * 4));
+ break;
+ case 'C':
+ case 'c':
+ value += 12 * (1 << (a * 4));
+ break;
+ case 'D':
+ case 'd':
+ value += 13 * (1 << (a * 4));
+ break;
+ case 'E':
+ case 'e':
+ value += 14 * (1 << (a * 4));
+ break;
+ case 'F':
+ case 'f':
+ value += 15 * (1 << (a * 4));
+ break;
+ default:
+ std::cerr << "Error, invalid character '"
+ << hex[a] << "' in hex number" << std::endl;
+ break;
+ }
+ }
+ }
+
+ return value;
+ }
+
+ } // end of namespace scribo::util::internal
+
+
+
+ value::rgb8 hex_to_color(const std::string& hex)
+ {
+ trace::entering("scribo::util::hex_to_color");
+
+ mln_precondition(!hex.empty());
+
+ std::string red, green, blue;
+
+ if (hex[0] == '#')
+ {
+ red = hex.substr(1, 2);
+ green = hex.substr(3, 2);
+ blue = hex.substr(5, 2);
+ }
+ else
+ {
+ red = hex.substr(0, 2);
+ green = hex.substr(2, 2);
+ blue = hex.substr(4, 2);
+ }
+
+ value::rgb8 v(internal::convert_from_hex(red),
+ internal::convert_from_hex(green),
+ internal::convert_from_hex(blue));
+
+ trace::exiting("scribo::util::hex_to_color");
+ return v;
+ }
+
+# endif // ! MLN_INCLUDE_ONLY
+
+ } // end of namespace scribo::util
+
+} // end of namespace scribo
+
+#endif // ! SCRIBO_UTIL_HEX_TO_COLOR_HH
diff --git a/scribo/tests/Makefile.am b/scribo/tests/Makefile.am
index 706338f..e2e7e66 100644
--- a/scribo/tests/Makefile.am
+++ b/scribo/tests/Makefile.am
@@ -43,7 +43,8 @@ SUBDIRS = \
table \
text \
toolchain \
- unit_test
+ unit_test \
+ util
# Regen files recursively.
include $(top_srcdir)/build-aux/regen-recursive.mk
diff --git a/scribo/tests/convert/Makefile.am b/scribo/tests/util/Makefile.am
similarity index 85%
copy from scribo/tests/convert/Makefile.am
copy to scribo/tests/util/Makefile.am
index c4c912c..8d132aa 100644
--- a/scribo/tests/convert/Makefile.am
+++ b/scribo/tests/util/Makefile.am
@@ -13,15 +13,14 @@
#
# You should have received a copy of the GNU General Public License
# along with Olena. If not, see <http://www.gnu.org/licenses/>.
-#
-
-## Process this file through Automake to create Makefile.in.
include $(top_srcdir)/scribo/tests/tests.mk
-check_PROGRAMS = \
- base64
+check_PROGRAMS = \
+ color_to_hex \
+ hex_to_color
-base64_SOURCES = base64.cc
+color_to_hex_SOURCES = color_to_hex.cc
+hex_to_color_SOURCES = hex_to_color.cc
TESTS = $(check_PROGRAMS)
diff --git a/scribo/demo/viewer/option_widget.cc b/scribo/tests/util/color_to_hex.cc
similarity index 70%
copy from scribo/demo/viewer/option_widget.cc
copy to scribo/tests/util/color_to_hex.cc
index 4557749..8e76b07 100644
--- a/scribo/demo/viewer/option_widget.cc
+++ b/scribo/tests/util/color_to_hex.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2011 EPITA Research and Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -14,17 +14,15 @@
// You should have received a copy of the GNU General Public License
// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-# include "option_widget.hh"
+// \file
-OptionWidget::OptionWidget(QWidget * parent)
- : QWidget(parent)
-{
-}
+#include <scribo/util/color_to_hex.hh>
-void OptionWidget::save_config()
+int main()
{
-}
+ using namespace mln;
-void OptionWidget::load_config()
-{
+ std::string hex = scribo::util::color_to_hex(value::rgb8(173, 255, 47));
+
+ mln_assertion(hex == "#ADFF2F");
}
diff --git a/scribo/demo/viewer/ocr_options.hh b/scribo/tests/util/hex_to_color.cc
similarity index 60%
copy from scribo/demo/viewer/ocr_options.hh
copy to scribo/tests/util/hex_to_color.cc
index 67ab4ef..65ea79e 100644
--- a/scribo/demo/viewer/ocr_options.hh
+++ b/scribo/tests/util/hex_to_color.cc
@@ -14,27 +14,19 @@
// You should have received a copy of the GNU General Public License
// along with Olena. If not, see <http://www.gnu.org/licenses/>.
-#ifndef SCRIBO_DEMO_VIEWER_OCR_OPTIONS_HH
-# define SCRIBO_DEMO_VIEWER_OCR_OPTIONS_HH
+// \file
-# include <QtGui>
-# include <ocr_options.ui.h>
-# include "option_widget.hh"
+#include <scribo/util/hex_to_color.hh>
-class ocr_options : public OptionWidget, private Ui::OcrOptions
+int main()
{
- Q_OBJECT;
+ using namespace mln;
-public:
- ocr_options(QWidget *parent = 0);
- ~ocr_options();
+ value::rgb8 v1 = scribo::util::hex_to_color("#ADFF2F");
+ value::rgb8 v2 = scribo::util::hex_to_color("ADFF2F");
+ value::rgb8 v3 = scribo::util::hex_to_color("aDfF2F");
- void load_config();
- void save_config();
-
-private:
- int find_index(const QString& lang);
-
-};
-
-#endif // ! SCRIBO_DEMO_VIEWER_OCR_OPTIONS_HH
+ mln_assertion(v1 == v2);
+ mln_assertion(v2 == v3);
+ mln_assertion(v1 == value::rgb8(173, 255, 47));
+}
--
1.5.6.5