Outptstyle fixedp
This commit is contained in:
@@ -204,4 +204,16 @@ main {
|
||||
.selectBoxes-drop-down-trigger:hover > .selectBoxes-dropdown {
|
||||
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;
|
||||
}
|
||||
|
||||
51
src/app.cpp
51
src/app.cpp
@@ -473,20 +473,43 @@ void App::imageUploaded(Wt::WFileUpload *fileWidget, std::shared_ptr<Magick::Blo
|
||||
Magick::readImages(&originalImages, fileWidget->spoolFileName());
|
||||
std::list<Magick::Image> previewList;
|
||||
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; });
|
||||
bool isAnimated = !originalImages.empty() && originalImages.front().scene() > 1;
|
||||
if (isAnimated) {
|
||||
Magick::coalesceImages(&previewList, previewList.begin(), previewList.end());
|
||||
Magick::coalesceImages(&localList, localList.begin(), localList.end());
|
||||
|
||||
// Maximale Größen für Vorschau und lokale Liste festlegen
|
||||
int maxPreviewWidth = 100;
|
||||
int maxPreviewHeight = 100;
|
||||
int maxLocalWidth = 500;
|
||||
int maxLocalHeight = 500;
|
||||
|
||||
// Originalgröße des ersten Bildes erhalten
|
||||
int originalWidth = originalImages.front().columns();
|
||||
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
|
||||
}
|
||||
auto resize = [](std::string size, std::list<Magick::Image> &imagesList) {
|
||||
for (auto &frame : imagesList) {
|
||||
frame.resize(size);
|
||||
|
||||
if (originalWidth > maxLocalWidth || originalHeight > maxLocalHeight) {
|
||||
Magick::Image resizedLocal = img;
|
||||
resizedLocal.resize(Magick::Geometry(localWidth, localHeight));
|
||||
localList.push_back(resizedLocal);
|
||||
} else {
|
||||
localList.push_back(img); // Originalgröße beibehalten
|
||||
}
|
||||
};
|
||||
resize("100x100^", previewList);
|
||||
resize("500x500^", localList);
|
||||
}
|
||||
|
||||
Magick::Blob resizedBlob;
|
||||
Magick::writeImages(previewList.begin(), previewList.end(), &resizedBlob);
|
||||
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 {
|
||||
int scale = 100;
|
||||
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->setToolTip(line["timestamp"]);
|
||||
item->setStyleClass("output-box-format");
|
||||
item->addStyleClass(writer == "you" ? "ouput-box-format-self" : "output-box-format-other");
|
||||
item->setInline(false);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user