Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Javascript ile ekran görüntüsü kaydetme

Konu, 'Javascript' kısmında zangoc302 tarafından paylaşıldı.

  1. zangoc302

    zangoc302 Üye

    Kayıt:
    7 Eylül 2014
    Mesajlar:
    78
    Beğenilen Mesajlar:
    1
    Merhaba arkadaşlar, web sitelerin ekran görüntüsünü kaydetmek için günlerdir kod veya script arayışındaydım, sonunda bir script buldum onlarca konu içerisinden bir tek güzel çalışan kod aşağıdaki kodu buldum ve sorunsuz çalışıyor. Benim sorunum ise bu çalışan kodlar istediğim gibi web sitesinin resmini çıkarıyor ama bunu web sitemde istediğim klasöre kayıt ettiremiyorum. Resim web sayfamda görünüyor ama sayfa kaynağımda hiç bir şekilde görünmüyor bu yüzden resimi çekemiyorum. Rica etsem nasıl çekebileceğim hakkında bilgi verir misiniz arkadaşlar?

    Veya bildiğiniz başka bir ekran görüntüsü almam için bir yöntem önerebilecek varsa onuda denemek isterim. Yardımlarınız için şimdiden teşekkür ederim arkadaşlar. İyi akşamlar...

    Kodlar ve kodların yer aldığı proje aşağıda bulunmaktadır.

    https://github.com/niklasvh/html2canvas

    Kod:
    <script type="text/javascript" src="js/html2canvas.js"></script>
    <script[COLOR=#333A42][FONT=Consolas] type="text/javascript"[COLOR=#333A42][FONT=Consolas] src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script type="text/javascript">
    function iframeLoad(iframe) {
        var body = $(iframe).contents().find('body');
        html2canvas(body, {
            onrendered: function( canvas ) {
                $("#content").empty().append(canvas);
            },
            allowTaint: true,
            taintTest: false,
            logging: true
        });
    }
    
    
    $(document).ready(function() {
        var url = "http://www.google.com";
        var urlParts = document.createElement('a');
        urlParts.href = url;   
        
        $.getJSON("http://html2canvas.appspot.com/query?callback=?", { xhr2:false, url:urlParts.href }, function(html) {
            iframe = document.createElement('iframe');
            $(iframe).css({ 'visibility':'hidden'}).width($(window).width()).height($(window).height());
            $('#content').append(iframe);
            d = iframe.contentWindow.document;
            d.open();
            $(iframe.contentWindow).load(iframeLoad.bind(null, iframe));
            $('base').attr('href',urlParts.protocol+"//"+urlParts.hostname+"/" + urlParts.pathname);
            html = html.replace("<head>","<head><base href='"+urlParts.protocol+"//"+urlParts.hostname+"/" + urlParts.pathname + "'  />");
            if($("#disablejs").prop('checked')){
              html = html.replace(/\<script/gi,"<!--<script");
              html = html.replace(/\<\/script\>/gi,"<\/script>-->");
            }
            d.write(html);
            d.close();
        });
    
    
    });
    </script>
    <div id="content"></div>
    
     
  2. 4hmet

    4hmet Üye

    Kayıt:
    9 Haziran 2009
    Mesajlar:
    26
    Beğenilen Mesajlar:
    0
    Meslek:
    Yazılım Uzmanı
    Şehir:
    den göğe kadar ..
    Merhaba geç olmuş cevap ama güç olmasın :)

    Kod:
    // Send Web Service - base64 olmalı Image data
            function SendImageToWebMethod(imgData) {
                var Pic = imgData;
                Pic = document.getElementsByTagName("canvas")[0].toDataURL("image/png");
                Pic = Pic.replace(/^data:image\/(png|jpg);base64,/, "");
                // Sending the image data to Server
                $.ajax({
                    type: 'POST',
                    url: 'UploadReportService.aspx/UploadImage',
                    data: '{ "imageData" : "' + Pic + '" }',
                    contentType: 'application/json; charset=utf-8',
                    dataType: 'json',
                    success: function (msg) {
                        //alert("Done, Picture Uploaded.");
                    }
                });
            }
    
    // Web Method
        [WebMethod()]
        [ScriptMethod]
        public static void UploadImage(string imageData)
        {
            string date = DateTime.Now.ToString("dd/MM/yyy").Substring(0, 10).Replace("/", "").Replace(".", "");
            string fileNameWitPath = HttpContext.Current.Server.MapPath("Images/GsGunluk/" + date + ".Png");
            if (File.Exists(fileNameWitPath))
                File.Delete(fileNameWitPath);
            using (FileStream fs = new FileStream(fileNameWitPath, FileMode.Create))
            {
                using (BinaryWriter bw = new BinaryWriter(fs))
                {
                    byte[] data = Convert.FromBase64String(imageData);//convert from base64
                    bw.Write(data);
                    bw.Close();
                }
            }
        }
    Umarim faydali olur.