mirror of
https://github.com/publiclab/image-sequencer.git
synced 2025-12-11 19:00:00 +01:00
Added thumbnails to insert preview. (#653)
* Adds thumbnail to insert step view * removed redundant code * Resolved merge conflicts * Resolved merge conflicts * made changes in intermediateHtmlStepUi * Update intermediateHtmlStepUi.js
This commit is contained in:
committed by
Jeffrey Warren
parent
8fd4efc621
commit
3d2d7844b6
@@ -1,34 +1,4 @@
|
|||||||
window.onload = function() {
|
window.onload = function() {
|
||||||
function generatePreview(previewStepName, customValues, path) {
|
|
||||||
var previewSequencer = ImageSequencer();
|
|
||||||
|
|
||||||
function insertPreview(src) {
|
|
||||||
var img = document.createElement('img');
|
|
||||||
img.classList.add('img-thumbnail')
|
|
||||||
img.classList.add('no-border');
|
|
||||||
img.src = src;
|
|
||||||
$(img).css("max-width", "200%");
|
|
||||||
$(img).css("transform", "translateX(-20%)");
|
|
||||||
var stepDiv = $('#addStep .row').find('div').each(function() {
|
|
||||||
if ($(this).find('div').attr('data-value') === previewStepName) {
|
|
||||||
$(this).find('div').append(img);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
function loadPreview() {
|
|
||||||
previewSequencer = previewSequencer.addSteps('resize', { resize: "40%" });
|
|
||||||
|
|
||||||
if (previewStepName === "crop") {
|
|
||||||
previewSequencer.addSteps(previewStepName, customValues).run(insertPreview);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
previewSequencer.addSteps(previewStepName, { [previewStepName]: customValues }).run(insertPreview);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
previewSequencer.loadImage(path, loadPreview);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
sequencer = ImageSequencer();
|
sequencer = ImageSequencer();
|
||||||
|
|
||||||
function refreshOptions() {
|
function refreshOptions() {
|
||||||
@@ -210,10 +180,12 @@ window.onload = function() {
|
|||||||
onLoad: function onFileReaderLoad(progress) {
|
onLoad: function onFileReaderLoad(progress) {
|
||||||
var reader = progress.target;
|
var reader = progress.target;
|
||||||
var step = sequencer.images.image1.steps[0];
|
var step = sequencer.images.image1.steps[0];
|
||||||
|
var util=IntermediateHtmlStepUi(sequencer);
|
||||||
step.output.src = reader.result;
|
step.output.src = reader.result;
|
||||||
sequencer.run({ index: 0 });
|
sequencer.run({ index: 0 });
|
||||||
step.options.step.imgElement.src = reader.result;
|
step.options.step.imgElement.src = reader.result;
|
||||||
updatePreviews(reader.result);
|
updatePreviews(reader.result,'addStep');
|
||||||
|
updatePreviews(sequencer.images.image1.steps[0].options.step.imgElement.src,'insertStep');
|
||||||
},
|
},
|
||||||
onTakePhoto: function (url) {
|
onTakePhoto: function (url) {
|
||||||
var step = sequencer.images.image1.steps[0];
|
var step = sequencer.images.image1.steps[0];
|
||||||
@@ -225,31 +197,9 @@ window.onload = function() {
|
|||||||
|
|
||||||
setupCache();
|
setupCache();
|
||||||
|
|
||||||
function updatePreviews(src) {
|
|
||||||
$('#addStep img').remove();
|
|
||||||
|
|
||||||
var previewSequencerSteps = {
|
|
||||||
"brightness": "175",
|
|
||||||
"saturation": "0.5",
|
|
||||||
"rotate": 90,
|
|
||||||
"contrast": 90,
|
|
||||||
"crop": {
|
|
||||||
"x": 0,
|
|
||||||
"y": 0,
|
|
||||||
"w": "(50%)",
|
|
||||||
"h": "(50%)",
|
|
||||||
"noUI": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Object.keys(previewSequencerSteps).forEach(function(step, index) {
|
|
||||||
generatePreview(step, Object.values(previewSequencerSteps)[index], src);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (getUrlHashParameter('src')) {
|
if (getUrlHashParameter('src')) {
|
||||||
updatePreviews(getUrlHashParameter('src'));
|
updatePreviews(getUrlHashParameter('src'),'addStep');
|
||||||
} else {
|
} else {
|
||||||
updatePreviews("images/tulips.png");
|
updatePreviews("images/tulips.png",'addStep');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -21,6 +21,7 @@
|
|||||||
<script src="lib/defaultHtmlStepUi.js" charset="utf-8"></script>
|
<script src="lib/defaultHtmlStepUi.js" charset="utf-8"></script>
|
||||||
<script src="lib/defaultHtmlSequencerUi.js" charset="utf-8"></script>
|
<script src="lib/defaultHtmlSequencerUi.js" charset="utf-8"></script>
|
||||||
<script src="lib/intermediateHtmlStepUi.js" charset="utf-8"></script>
|
<script src="lib/intermediateHtmlStepUi.js" charset="utf-8"></script>
|
||||||
|
<script src="lib/insertPreview.js" charset="utf-8"></script>
|
||||||
<script src="lib/cache.js" charset="utf-8"></script>
|
<script src="lib/cache.js" charset="utf-8"></script>
|
||||||
<script src="demo.js" charset="utf-8"></script>
|
<script src="demo.js" charset="utf-8"></script>
|
||||||
<!-- for crop module: -->
|
<!-- for crop module: -->
|
||||||
|
|||||||
50
examples/lib/insertPreview.js
Normal file
50
examples/lib/insertPreview.js
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
function generatePreview(previewStepName, customValues, path, selector) {
|
||||||
|
|
||||||
|
var previewSequencer = ImageSequencer();
|
||||||
|
function insertPreview(src) {
|
||||||
|
var img = document.createElement('img');
|
||||||
|
img.classList.add('img-thumbnail')
|
||||||
|
img.classList.add('no-border');
|
||||||
|
img.src = src;
|
||||||
|
$(img).css("max-width", "200%");
|
||||||
|
$(img).css("transform", "translateX(-20%)");
|
||||||
|
var stepDiv = $('#'+selector+' .row').find('div').each(function() {
|
||||||
|
if ($(this).find('div').attr('data-value') === previewStepName) {
|
||||||
|
$(this).find('div').append(img);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadPreview() {
|
||||||
|
previewSequencer = previewSequencer.addSteps('resize', { resize: "40%" });
|
||||||
|
if (previewStepName === "crop") {
|
||||||
|
previewSequencer.addSteps(previewStepName, customValues).run(insertPreview);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
previewSequencer.addSteps(previewStepName, { [previewStepName]: customValues }).run(insertPreview);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
previewSequencer.loadImage(path, loadPreview);
|
||||||
|
}
|
||||||
|
|
||||||
|
function updatePreviews(src, selector) {
|
||||||
|
$('#'+selector+' img').remove();
|
||||||
|
|
||||||
|
var previewSequencerSteps = {
|
||||||
|
"brightness": "20",
|
||||||
|
"saturation": "5",
|
||||||
|
"rotate": 90,
|
||||||
|
"contrast": 90,
|
||||||
|
"crop": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"w": "(50%)",
|
||||||
|
"h": "(50%)",
|
||||||
|
"noUI": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Object.keys(previewSequencerSteps).forEach(function (step, index) {
|
||||||
|
generatePreview(step, Object.values(previewSequencerSteps)[index], src, selector);
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -1,40 +1,40 @@
|
|||||||
function IntermediateHtmlStepUi(_sequencer, step, options) {
|
function IntermediateHtmlStepUi(_sequencer, step, options) {
|
||||||
function stepUI() {
|
function stepUI() {
|
||||||
return '<div class="row insertDiv">\
|
return '<div class="row insertDiv">\
|
||||||
<div class="col-md-6" style="margin-top:5%">\
|
<div class="col-md-6 col-md-offset-2" style="margin-top:5%">\
|
||||||
<section id="insertStep" class="panel panel-primary">\
|
<section id="insertStep" class="panel panel-primary">\
|
||||||
<div class="form-inline">\
|
<div class="form-inline">\
|
||||||
<div class="panel-body">\
|
<div class="panel-body">\
|
||||||
<p class="info">Select a new module to add to your sequence.</p>\
|
<p class="info">Select a new module to add to your sequence.</p>\
|
||||||
<div class="row center-align radio-group">\
|
<div class="row center-align radio-group">\
|
||||||
<div>\
|
<div>\
|
||||||
<button type="button" class="btn btn-default btn-circle btn-xl radio" data-value="brightness">\
|
<div class="radio" data-value="brightness">\
|
||||||
<i class="fa fa-sun-o fa-4x"></i>\
|
<i class="fa fa-sun-o fa-4x i-over"></i>\
|
||||||
</button>\
|
</div>\
|
||||||
<p>Brightness</p>\
|
<p>Brightness</p>\
|
||||||
</div>\
|
</div>\
|
||||||
<div>\
|
<div>\
|
||||||
<button type="button" class="btn btn-default btn-circle btn-xl radio" data-value="contrast">\
|
<div class="radio" data-value="contrast">\
|
||||||
<i class="fa fa-adjust fa-4x"></i>\
|
<i class="fa fa-adjust fa-4x i-over"></i>\
|
||||||
</button>\
|
</div>\
|
||||||
<p>Contrast</p>\
|
<p>Contrast</p>\
|
||||||
</div>\
|
</div>\
|
||||||
<div>\
|
<div>\
|
||||||
<button type="button" class="btn btn-default btn-circle btn-xl radio" data-value="saturation">\
|
<div class="radio" data-value="saturation">\
|
||||||
<i class="fa fa-tint fa-4x"></i>\
|
<i class="fa fa-tint fa-4x i-over i-small"></i>\
|
||||||
</button>\
|
</div>\
|
||||||
<p>Saturation</p>\
|
<p>Saturation</p>\
|
||||||
</div>\
|
</div>\
|
||||||
<div>\
|
<div>\
|
||||||
<button type="button" class="btn btn-default btn-circle btn-xl radio" data-value="rotate">\
|
<div class="radio" data-value="rotate">\
|
||||||
<i class="fa fa-rotate-right fa-4x"></i>\
|
<i class="fa fa-rotate-right fa-4x i-over"></i>\
|
||||||
</button>\
|
</div>\
|
||||||
<p>Rotate</p>\
|
<p>Rotate</p>\
|
||||||
</div>\
|
</div>\
|
||||||
<div>\
|
<div>\
|
||||||
<button type="button" class="btn btn-default btn-circle btn-xl radio" data-value="crop">\
|
<div class="radio" data-value="crop">\
|
||||||
<i class="fa fa-crop fa-4x"></i>\
|
<i class="fa fa-crop fa-4x i-over"></i>\
|
||||||
</button>\
|
</div>\
|
||||||
<p>Crop</p>\
|
<p>Crop</p>\
|
||||||
</div>\
|
</div>\
|
||||||
</div>\
|
</div>\
|
||||||
@@ -50,6 +50,8 @@ function IntermediateHtmlStepUi(_sequencer, step, options) {
|
|||||||
</section>\
|
</section>\
|
||||||
</div>';
|
</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function selectNewStepUi() {
|
function selectNewStepUi() {
|
||||||
var m = $("#insertStep select").val();
|
var m = $("#insertStep select").val();
|
||||||
$("#insertStep .info").html(_sequencer.modulesInfo(m).description);
|
$("#insertStep .info").html(_sequencer.modulesInfo(m).description);
|
||||||
@@ -65,6 +67,7 @@ function IntermediateHtmlStepUi(_sequencer, step, options) {
|
|||||||
.insertAdjacentElement('afterend',
|
.insertAdjacentElement('afterend',
|
||||||
addStepUI
|
addStepUI
|
||||||
);
|
);
|
||||||
|
updatePreviews(step.output,'insertStep');
|
||||||
var insertStepSelect = $("#insertStep select");
|
var insertStepSelect = $("#insertStep select");
|
||||||
insertStepSelect.html("");
|
insertStepSelect.html("");
|
||||||
// Add modules to the insertStep dropdown
|
// Add modules to the insertStep dropdown
|
||||||
@@ -112,6 +115,7 @@ function IntermediateHtmlStepUi(_sequencer, step, options) {
|
|||||||
setUrlHashParameter("steps", _sequencer.toString());
|
setUrlHashParameter("steps", _sequencer.toString());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
insertStep
|
insertStep
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user