Outptstyle fixedp
This commit is contained in:
@@ -204,4 +204,16 @@ main {
|
|||||||
.selectBoxes-drop-down-trigger:hover > .selectBoxes-dropdown {
|
.selectBoxes-drop-down-trigger:hover > .selectBoxes-dropdown {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
.output-box-format {
|
||||||
|
border: 1px solid #999;
|
||||||
|
padding: 1px 6px;
|
||||||
|
margin-bottom: 0.2em;
|
||||||
|
border-radius: 3px;
|
||||||
|
line-height: 2em;
|
||||||
|
}
|
||||||
|
.ouput-box-format-self {
|
||||||
|
background-color: #eaeaea;
|
||||||
|
}
|
||||||
|
.output-box-format-other {
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
|||||||
53
src/app.cpp
53
src/app.cpp
@@ -473,20 +473,43 @@ void App::imageUploaded(Wt::WFileUpload *fileWidget, std::shared_ptr<Magick::Blo
|
|||||||
Magick::readImages(&originalImages, fileWidget->spoolFileName());
|
Magick::readImages(&originalImages, fileWidget->spoolFileName());
|
||||||
std::list<Magick::Image> previewList;
|
std::list<Magick::Image> previewList;
|
||||||
std::list<Magick::Image> localList;
|
std::list<Magick::Image> localList;
|
||||||
std::transform(originalImages.begin(), originalImages.end(), std::back_inserter(previewList), [](const Magick::Image& img) { return img; });
|
|
||||||
std::transform(originalImages.begin(), originalImages.end(), std::back_inserter(localList), [](const Magick::Image& img) { return img; });
|
// Maximale Größen für Vorschau und lokale Liste festlegen
|
||||||
bool isAnimated = !originalImages.empty() && originalImages.front().scene() > 1;
|
int maxPreviewWidth = 100;
|
||||||
if (isAnimated) {
|
int maxPreviewHeight = 100;
|
||||||
Magick::coalesceImages(&previewList, previewList.begin(), previewList.end());
|
int maxLocalWidth = 500;
|
||||||
Magick::coalesceImages(&localList, localList.begin(), localList.end());
|
int maxLocalHeight = 500;
|
||||||
}
|
|
||||||
auto resize = [](std::string size, std::list<Magick::Image> &imagesList) {
|
// Originalgröße des ersten Bildes erhalten
|
||||||
for (auto &frame : imagesList) {
|
int originalWidth = originalImages.front().columns();
|
||||||
frame.resize(size);
|
int originalHeight = originalImages.front().rows();
|
||||||
|
|
||||||
|
// Vorschau- und lokale Größe berechnen
|
||||||
|
int previewWidth = std::min(originalWidth, maxPreviewWidth);
|
||||||
|
int previewHeight = std::min(originalHeight, maxPreviewHeight);
|
||||||
|
int localWidth = std::min(originalWidth, maxLocalWidth);
|
||||||
|
int localHeight = std::min(originalHeight, maxLocalHeight);
|
||||||
|
|
||||||
|
// Größenänderung für alle Frames durchführen
|
||||||
|
for (const auto& img : originalImages) {
|
||||||
|
// Größenänderung nur durchführen, wenn das Bild größer als die maximalen Größen ist
|
||||||
|
if (originalWidth > maxPreviewWidth || originalHeight > maxPreviewHeight) {
|
||||||
|
Magick::Image resizedPreview = img;
|
||||||
|
resizedPreview.resize(Magick::Geometry(previewWidth, previewHeight));
|
||||||
|
previewList.push_back(resizedPreview);
|
||||||
|
} else {
|
||||||
|
previewList.push_back(img); // Originalgröße beibehalten
|
||||||
}
|
}
|
||||||
};
|
|
||||||
resize("100x100^", previewList);
|
if (originalWidth > maxLocalWidth || originalHeight > maxLocalHeight) {
|
||||||
resize("500x500^", localList);
|
Magick::Image resizedLocal = img;
|
||||||
|
resizedLocal.resize(Magick::Geometry(localWidth, localHeight));
|
||||||
|
localList.push_back(resizedLocal);
|
||||||
|
} else {
|
||||||
|
localList.push_back(img); // Originalgröße beibehalten
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Magick::Blob resizedBlob;
|
Magick::Blob resizedBlob;
|
||||||
Magick::writeImages(previewList.begin(), previewList.end(), &resizedBlob);
|
Magick::writeImages(previewList.begin(), previewList.end(), &resizedBlob);
|
||||||
Magick::writeImages(localList.begin(), localList.end(), &(*localImage));
|
Magick::writeImages(localList.begin(), localList.end(), &(*localImage));
|
||||||
@@ -504,8 +527,6 @@ void App::imageUploaded(Wt::WFileUpload *fileWidget, std::shared_ptr<Magick::Blo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Magick::Image App::scaleImage(const Magick::Image& originalImage, int maxSize) const {
|
Magick::Image App::scaleImage(const Magick::Image& originalImage, int maxSize) const {
|
||||||
int scale = 100;
|
int scale = 100;
|
||||||
int maxDimension = std::max(originalImage.size().width(), originalImage.size().height());
|
int maxDimension = std::max(originalImage.size().width(), originalImage.size().height());
|
||||||
@@ -613,6 +634,8 @@ void App::renderChatLine(Wt::Json::Object &line, Wt::Json::Object conversation,
|
|||||||
item = new Wt::WText("");
|
item = new Wt::WText("");
|
||||||
}
|
}
|
||||||
item->setToolTip(line["timestamp"]);
|
item->setToolTip(line["timestamp"]);
|
||||||
|
item->setStyleClass("output-box-format");
|
||||||
|
item->addStyleClass(writer == "you" ? "ouput-box-format-self" : "output-box-format-other");
|
||||||
item->setInline(false);
|
item->setInline(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user