color_t: use utils::from_chars
This commit is contained in:
parent
6f32635788
commit
675d963016
1 changed files with 12 additions and 10 deletions
|
@ -12,9 +12,11 @@
|
|||
See the COPYING file for more details.
|
||||
*/
|
||||
|
||||
#include "serialization/string_utils.hpp"
|
||||
#include "color.hpp"
|
||||
|
||||
#include "serialization/string_utils.hpp"
|
||||
#include "utils/from_chars.hpp"
|
||||
|
||||
#include <iomanip>
|
||||
#include <sstream>
|
||||
|
||||
|
@ -32,10 +34,10 @@ color_t color_t::from_rgba_string(const std::string& c)
|
|||
}
|
||||
|
||||
return {
|
||||
static_cast<uint8_t>(std::stoul(fields[0])),
|
||||
static_cast<uint8_t>(std::stoul(fields[1])),
|
||||
static_cast<uint8_t>(std::stoul(fields[2])),
|
||||
static_cast<uint8_t>(fields.size() == 4 ? std::stoul(fields[3]) : ALPHA_OPAQUE)
|
||||
utils::from_chars<uint8_t>(fields[0]).value(),
|
||||
utils::from_chars<uint8_t>(fields[1]).value(),
|
||||
utils::from_chars<uint8_t>(fields[2]).value(),
|
||||
fields.size() == 4 ? utils::from_chars<uint8_t>(fields[3]).value() : ALPHA_OPAQUE
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -52,10 +54,10 @@ color_t color_t::from_rgb_string(const std::string& c)
|
|||
}
|
||||
|
||||
return {
|
||||
static_cast<uint8_t>(std::stoul(fields[0])),
|
||||
static_cast<uint8_t>(std::stoul(fields[1])),
|
||||
static_cast<uint8_t>(std::stoul(fields[2])),
|
||||
static_cast<uint8_t>(ALPHA_OPAQUE)
|
||||
utils::from_chars<uint8_t>(fields[0]).value(),
|
||||
utils::from_chars<uint8_t>(fields[1]).value(),
|
||||
utils::from_chars<uint8_t>(fields[2]).value(),
|
||||
ALPHA_OPAQUE
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -69,7 +71,7 @@ color_t color_t::from_hex_string(const std::string& c)
|
|||
throw std::invalid_argument("Color hex string contains invalid characters");
|
||||
}
|
||||
|
||||
unsigned long temp_c = std::strtol(c.c_str(), nullptr, 16);
|
||||
auto temp_c = utils::from_chars<uint32_t>(c, 16).value();
|
||||
|
||||
return {
|
||||
static_cast<uint8_t>((0x00FFFFFF & temp_c) >> 16),
|
||||
|
|
Loading…
Add table
Reference in a new issue