开发者

Restrict Image by selecting it's URL

I am trying to add Images from websites and I am facing poblem with an issue which is that when I am trying to go to google images and trying to add some Images and when I right click for some images I find "Copy Image URL" and for some I don't find it and I find "Copy link address".Now I want my users to restrict from adding the Images which contain "Copy Image URL" And I am attaching Images so that you'll understand me in a better way.

Restrict Image by selecting it's URL

Restrict Image by selecting it's URL

How do I do that?

Here is the code for saving the image:

Dim dir_name As String = txtDirectory.Text
    If Not dir_name.EndsWith("\") Then dir_name &= "\"

        For Each pic As PictureBox In flpPictures.Controls
            Dim bm As Bitmap = CType(pic.Image, Bitmap)
            Dim filename As String = CStr(pic.Tag)
            filename = filename.Substring(filename.LastIndexOf("/") + 1)
            Dim ext As String = filename.Substring(filename.LastIndexOf("."))

            'Here it gives me an error at(filename.lastindexof开发者_开发知识库(".")


            Dim full_name As String = dir_name & filename

            Select Case ext
                Case ".bmp"
                    bm.Save(full_name, Imaging.ImageFormat.Bmp)
                Case ".gif"
                    bm.Save(full_name, Imaging.ImageFormat.Gif)
                Case ".jpg", "jpeg"
                    bm.Save(full_name, Imaging.ImageFormat.Jpeg)
                Case ".png"
                    bm.Save(full_name, Imaging.ImageFormat.Png)
                Case ".tiff"
                    bm.Save(full_name, Imaging.ImageFormat.Tiff)
                Case Else
                    MessageBox.Show( _
                        "Unknown file type " & ext & _
                        " in file " & filename, _
                        "Unknown File Type", _
                        MessageBoxButtons.OK, _
                        MessageBoxIcon.Error)
            End Select
        Next pic

        Beep()


   'WEB CLIENT IS NEEDED TO DO THE DOWNLOAD
        Dim MyWebClient As New System.Net.WebClient

        'BYTE ARRAY HOLDS THE DATA
        Dim ImageInBytes() As Byte = MyWebClient.DownloadData(url)

        'CREATE A MEMORY STREAM USING THE BYTES
        Dim ImageStream As New IO.MemoryStream(ImageInBytes)

        'CREATE A BITMAP FROM THE MEMORY STREAM
        PictureBox1.Image = New System.Drawing.Bitmap(ImageStream)


In the top screenshot, you are right-clicking directly on an image.

In the bottom screenshot, you are right-clicking on an empty div with a z-index that puts it above the image.

Here's an example:

<a href="http://example.com">
    <img src="myImg.jpg" style="position: absolute;" />
    <div style="z-index:1; position:absolute; width:100%; height:100%;"></div>
</a>

When you mouse over the link in Google Images another div is shown on top that contains the saveable image. Have a look with Firebug and see for yourself :)

Note that there is no perfect way to prevent users from saving images from your website. You can disable right click, mask the image with a div, mask the image with a transparent image (so the user can right-click and save the image but they get the wrong one), prevent caching etc but ultimately any tech savvy user can get around this. Still, these approaches will stop casual users so it's better than nothing. If you want to find out more about the methods that I just named, I suggest Googling for "disable save image as" or "disable copy image url".


maybe helpful


Sub Base64Convert(ByVal Base64MSG As String)
        'Setup image and get data stream together
        Dim img As System.Drawing.Image
        Dim MS As System.IO.MemoryStream = New System.IO.MemoryStream

        Dim b64 As String = Base64MSG
        Dim b() As Byte

        'Converts the base64 encoded msg to image data
        b = Convert.FromBase64String(b64)
        MS = New System.IO.MemoryStream(b)

        'creates image
        img = System.Drawing.Image.FromStream(MS)

        'writes image for displaying
        img.Save(Request.ServerVariables("APPL_PHYSICAL_PATH") & "LabelInfo.tiff", System.Drawing.Imaging.ImageFormat.Tiff)
        'cleaning up house
        img.Dispose()
        MS.Close()
End Sub

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜