Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Запрет на сохранение изображения (https://javascript.ru/forum/misc/2563-zapret-na-sokhranenie-izobrazheniya.html)

Олег 04.02.2009 21:09

Можно придумать несколько фишек, навскидку
1. Поверх изображения наложить прозрачный див - тогда меню будет вызываться для дива а не изображения
2. Вставить изображение через Canvas используя JS

x-yuri 04.02.2009 21:12

Цитата:

2. Вставить изображение через Canvas используя JS
можно подробнее?

Олег 04.02.2009 23:37

Цитата:

Сообщение от x-yuri (Сообщение 12068)
можно подробнее?

Да, вот пример, только там с помощью канвы изображения поворачиваются (нижний левый оранжевый квадратик для поворота)/растягиваются , для ie использованы функции activex (directx компонент), что исключает надобность юзания explorercanvas и уменьшает размер скрипта до нескольких строк

http://olejek777.narod.ru/

Гость 04.02.2009 23:40

Цитата:

Сообщение от x-yuri (Сообщение 12068)
можно подробнее?

Canvas tutorial

Андрей Параничев 04.02.2009 23:46

Олег,
Canvas можно сохранить, как обычное изображение в формате png.

Олег 05.02.2009 00:10

А тогда если кликнуть на "Сохранить страничку" то в папке с файлами страницы не будет сохраненное фото. А сверху канвы див, тогда без копания в исходном коде страницы не вытянишь рисунок :-(

Олег 05.02.2009 00:31

что то вроде такого, только с размеры надо подправить и добавить прозрачный див

<html>

<OBJECT ID="DAControl" CLASSID="CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D" STYLE='WIDTH:100px;HEIGHT:100px;'></OBJECT>
<canvas id='cr' width='200px' height='200px' style='-moz-opacity:0.3;'/>

<script>

window.onload = function () {
if ('\v'=='v')
{
//DAControll.Stop(); tc
	mDAStatics = DAControl.PixelLibrary;
	myOval1= mDAStatics.ImportImage("i.JPG");
	DAControl.Image = myOval1; 
	DAControl.Start();
}
else
{
    
	cu = document.getElementById('cr');

    var c = new Image(100,100);
    c.src = 'i.JPG';

    var ct = cu.getContext('2d');
    ct.drawImage(c,0,0,60,60,0,0,60,60);

}

}

</script>

</html>

x-yuri 07.02.2009 16:01

if ('\v'=='v')

это типа проверка на IE? А не лучше ли проверять наличие метода getContext и если его нету - вставлять object? Или проверять поддержку canvas другим методом?


Часовой пояс GMT +3, время: 11:24.