简体   繁体   English

如何将下载按钮直接指向显示图片的网址

[英]how to direct download button to url with showing the image

i have this code. 我有这个代码。 and i want when i press download image that it will show the filtered image in my designed webpage. 而且我想当我按下下载图像时,它将在我设计的网页中显示经过过滤的图像。 someone can help me how can i do this? 有人可以帮助我,我该怎么做?

i know i have to change something here in the url. 我知道我必须在URL中进行一些更改。 but its dont working and i dont really know why: 但它不起作用,我真的不知道为什么:

var url = canvas.toDataURL("image/png;base64;"); var url = canvas.toDataURL(“ image / png; base64;”); downloadImage.attr('href', url); downloadImage.attr('href',url);

please help me. 请帮我。

$(function() {

    /*
        In this code, we are going to do the following:

        1. Accept an image on drag and drop
        2. Create a new canvas element (original), with a max size
           of 500x500px (customizable) and keep it in memory
        3. Listen for clicks on the filters. When one is selected:
                3.1 Create a clone of the original canvas
                3.2 Remove any canvas elements currently on the page
                3.3 Append the clone to the #photo div
                3.4 If the selected filter is different from the "Normal"
                    one, call the Caman library. Otherwise do nothing.
                3.5 Mark the selected filter with the "active" class
        4. Trigger the "Normal" filter

    */

    var maxWidth = 500,
        maxHeight = 500,
        photo = $('#photo'),
        originalCanvas = null,
        filters = $('#filters li a'),
        filterContainer = $('#filterContainer');

    // Use the fileReader plugin to listen for
    // file drag and drop on the photo div:

    photo.fileReaderJS({
        on:{
            load: function(e, file){

                // An image has been dropped.

                var img = $('<img>').appendTo(photo),
                    imgWidth, newWidth,
                    imgHeight, newHeight,
                    ratio;

                // Remove canvas elements left on the page
                // from previous image drag/drops.

                photo.find('canvas').remove();
                filters.removeClass('active');

                // When the image is loaded successfully,
                // we can find out its width/height:

                img.load(function() {

                    imgWidth  = this.width;
                    imgHeight = this.height;

                    // Calculate the new image dimensions, so they fit
                    // inside the maxWidth x maxHeight bounding box

                    if (imgWidth >= maxWidth || imgHeight >= maxHeight) {

                        // The image is too large,
                        // resize it to fit a 500x500 square!

                        if (imgWidth > imgHeight) {

                            // Wide
                            ratio = imgWidth / maxWidth;
                            newWidth = maxWidth;
                            newHeight = imgHeight / ratio;

                        } else {

                            // Tall or square
                            ratio = imgHeight / maxHeight;
                            newHeight = maxHeight;
                            newWidth = imgWidth / ratio;

                        }

                    } else {
                        newHeight = imgHeight;
                        newWidth = imgWidth;
                    }

                    // Create the original canvas.

                    originalCanvas = $('<canvas>');
                    var originalContext = originalCanvas[0].getContext('2d');

                    // Set the attributes for centering the canvas

                    originalCanvas.attr({
                        width: newWidth,
                        height: newHeight
                    }).css({
                        marginTop: -newHeight/2,
                        marginLeft: -newWidth/2
                    });

                    // Draw the dropped image to the canvas
                    // with the new dimensions
                    originalContext.drawImage(this, 0, 0, newWidth, newHeight);

                    // We don't need this any more
                    img.remove();

                    filterContainer.fadeIn();

                    // Trigger the default "normal" filter
                    filters.first().click();
                });

                // Set the src of the img, which will
                // trigger the load event when done:

                img.attr('src', e.target.result);
            },

            beforestart: function(file){

                // Accept only images.
                // Returning false will reject the file.

                return /^image/.test(file.type);
            }
        }
    });

    // Listen for clicks on the filters

    filters.click(function(e){

        e.preventDefault();

        var f = $(this);

        if(f.is('.active')){
            // Apply filters only once
            return false;
        }

        filters.removeClass('active');
        f.addClass('active');

        // Clone the canvas
        var clone = originalCanvas.clone();

        // Clone the image stored in the canvas as well
        clone[0].getContext('2d').drawImage(originalCanvas[0],0,0);


        // Add the clone to the page and trigger
        // the Caman library on it

        photo.find('canvas').remove().end().append(clone);

        var effect = $.trim(f[0].id);

        Caman(clone[0], function () {

            // If such an effect exists, use it:

            if( effect in this){
                this[effect]();
                this.render();

                // Show the download button
                showDownload(clone[0]);
            }
            else{
                hideDownload();
            }
        });

    });

    // Use the mousewheel plugin to scroll
    // scroll the div more intuitively

    filterContainer.find('ul').on('mousewheel',function(e, delta){

        this.scrollLeft -= (delta * 50);
        e.preventDefault();

    });

    var downloadImage = $('a.downloadImage');

    function showDownload(canvas){


        downloadImage.off('click').click(function(){

            // When the download link is clicked, get the
            // DataURL of the image and set it as href:

            var url = canvas.toDataURL("image/png;base64;");
            downloadImage.attr('href', url);

        }).fadeIn();

    }

    function hideDownload(){
        downloadImage.fadeOut();
    }

});

You can try this: 您可以尝试以下方法:

var downloadImage = $('a.downloadImage');
var url = canvas.toDataURL("image/png;base64;");
downloadImage.attr('href', url);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 直接从url下载图像 - Download image direct from url 如何从链接直接下载图像以使用 CasperJS 单击保存或下载按钮? - How to download image from link direct to save or download button click with CasperJS? 如何从Google Picker JavaScript API获取直接下载URL? - How to get a direct download URL from Google Picker JavaScript API? 如何创建按钮组件以直接下载reactjs中的文件? - How can create button component for direct download the file in reactjs? 如何从图片网址下载图片? - How to download image from an image URL? 如何使用python请求模块下载需要触发按钮显示url的网站图片 - How to use python request module to download image in website that need to trigger a button to show the url 单击下载按钮以从URL下载图像:URL中的点都被下划线代替了吗? - Clicking download button to download an image from URL: dots in the URL are all replaced by underscore? 如何下载放置在图像按钮中的文件 - HTMLUNIT - How to Download a file placed in a image button - HTMLUNIT "如何在 nextjs 中为图像制作下载按钮" - How to make a download button for image in nextjs 如何在 JavaScript 中制作“下载背景图片”按钮? - How to make “Download Background Image” button in JavaScript?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM