示例#1
0
void SaverXml::visit(document::Image& image)
{
    writer.writeStartElement("image");
    writeId(image);

    if ( image.frame() )
        writeId(*image.frame(), "frame");

    if ( !image.metadata().empty() )
    {
        writeMetadata(image.metadata());
        writer.writeStartElement("bitmap");
    }

    writer.writeAttribute("type", image_format.name());
    QByteArray image_data;
    QBuffer buffer(&image_data);
    QImageWriter image_writer(&buffer, image_format.preferredSuffix().toLatin1());
    image_writer.write(image.image());
    writer.writeCharacters(image_data.toBase64());

    if ( !image.metadata().empty() )
    {
        writer.writeEndElement();
    }

    writer.writeEndElement();
}
示例#2
0
 void readInput(int length){
   int incomingByte;
   incomingByte = Serial.read();
   if(incomingByte==-1){
     return;
   }
 
   int startIndex = 1;
   char valueBuffer[length-1];
   valueBuffer[0] = incomingByte;
 
   while (incomingByte != -1){
     // read the incoming byte:
     incomingByte = Serial.read();
     if (startIndex > length){
       break;
     }
 
     valueBuffer[startIndex] = incomingByte;
     startIndex++;
   }
 
   if(valueBuffer[0] != ','){
     writeId(idLength, valueBuffer);
   }
   readId(idLength);
 }
示例#3
0
bool SaverXml::enter(document::Document& document)
{
    QString format = formats().format("mela")->setting<QString>("image_format", &document);
    image_format = mimeType(format, "image/png");

    writer.writeStartElement("document");
    writeId(document);
    writer.writeAttribute("width", QString::number(document.imageSize().width()));
    writer.writeAttribute("height", QString::number(document.imageSize().height()));
    writeMetadata(document.metadata());
    const auto& settings = document.formatSettings().settings();
    if ( !settings.empty() )
    {
        writer.writeStartElement("formats");
        for ( auto i = settings.begin(); i != settings.end(); ++i )
        {
            QString element = i.key() ? i.key()->id() : "default";
            writer.writeStartElement(element);
            for ( auto j = i->begin(); j != i->end(); ++j )
                writer.writeTextElement(j.key(), j.value().toString());
            writer.writeEndElement();
        }
        writer.writeEndElement();
    }
    return true;
}
示例#4
0
void SaverXml::visit(document::Frame& frame)
{
    writer.writeStartElement("frame");
    writeId(frame);
    writeMetadata(frame.metadata());
    writer.writeEndElement();
}
示例#5
0
bool SaverXml::enter(document::Animation& animation)
{
    writer.writeStartElement("animation");
    writeId(animation);
    writer.writeAttribute("name",animation.name());
    writer.writeAttribute("fps",QString::number(animation.framesPerSecond()));
    writeMetadata(animation.metadata());
    return true;
}
示例#6
0
bool SaverXml::enter(document::Layer& layer)
{
    writer.writeStartElement("layer");
    writeId(layer);
    writer.writeAttribute("name", layer.name());
    writer.writeAttribute("opacity", QString::number(layer.opacity()));
    writer.writeAttribute("visible", QString::number(layer.visible()));
    writer.writeAttribute("locked", QString::number(layer.locked()));
    writer.writeAttribute("blend", misc::composition_to_string(layer.blendMode()));
    writer.writeAttribute("background", color_widgets::stringFromColor(layer.backgroundColor().alpha()));
    writeMetadata(layer.metadata());
    return true;
}