Действительно ли я могу получить доступ к файлу данных тега img от JavaScript

Вы можете проверить тип шрифта таким же образом и перемещаться также вы можете сделать в jsx. но это намного чище

 navigatetoPage(data){
    const page = data.type == "course" ? "UnitListing" : "ChapterListing";
     this.props.navigation.navigate(page, {
            id: data.id,
            type: data.type
     }) 
 }
 
 <TouchableOpacity
  style={st.btn} onPress={() => this.navigatetoPage(data)}>
  <Text style={{ color: "#fff" }}>View Course</Text>
</TouchableOpacity>

6
задан BCS 18 November 2008 в 18:56
поделиться

6 ответов

// Download the image data using AJAX, I'm using jQuery
var imageData = $.ajax({ url: "MyImage.gif", async: false }).responseText;

// Image data updating magic
imageDataChanged = ChangeImage(imageData);

// Encode to base64, maybe try the webtoolkit.base64.js library
imageDataEncoded = Base64Encode(imageDataChanged);

// Write image data out to browser (FF seems to support this)
document.write('<img src="data:image/gif;base64,' + imageDataEncoded + '">');
8
ответ дан 9 December 2019 в 22:41
поделиться

Если Вы используете Firefox (и я думаю Opera и возможно Safari; я не могу проверить прямо сейчас), можно нарисовать изображение на элементе холста и использовать getImageData.

Это работало бы отчасти как это:

var img = document.getElementById("img_id");
var canvas = document.getElementById("canvas_id");
var context = canvas.getContext("2d");

var imageData = context.getImageData(0, 0, context.width, context.height);

// Now imageData is an object with width, height, and data properties.
// imageData.data is an array of pixel values (4 values per pixel in RGBA order)

// Change the top left pixel to red
imageData.data[0] = 255; // red
imageData.data[1] = 0;   // green
imageData.data[2] = 0;   // blue
imageData.data[3] = 255; // alpha

// Update the canvas
context.putPixelData(imageData, 0, 0);

После того как Вы получаете данные изображения, можно вычислить начальное значение индекса для каждого пикселя:

var index = (y * imageData.width + x) * 4;

и добавьте смещение для каждого канала (0 для красного, 1 для зеленого, 2 для синего, 3 для альфы)

2
ответ дан 9 December 2019 в 22:41
поделиться

Некоторые браузеры поддерживают Base64 закодированная строка как img src, но не все. Это было бы похоже:

<img src="data:image/gif;base64,R0lGODl......j5+g4JADs=">

Когда Вы делаете это тот путь, Вы можете в фальшивке арендного договора получать доступ к фактическим данным, но поскольку я сказал, что это не поддерживаемых 100%. Кроме этого - никакой путь.

Реальный вопрос: Чего Вы пытаетесь достигнуть? Большую часть времени (95%, вероятно, больше) повторенные перезагрузки изображения пойманы кэшем браузера, в этом случае просто изменение img.src имеет тот же эффект и не вызывает сетевого трафика (если это - то, что Вы волнуете по поводу).

1
ответ дан 9 December 2019 в 22:41
поделиться

можно нарисовать изображение тега img на холст HTML с помощью canvas.drawImage

1
ответ дан 9 December 2019 в 22:41
поделиться

Попробуйте это:

img = new Image(); 
img.src = "imagefile.jpg";
-1
ответ дан 9 December 2019 в 22:41
поделиться

Можно попытаться загрузить изображение с помощью Ajax, но затем Вы могли бы поразить междоменные ограничения сценариев.

Из других способов получить доступ к данным изображения я не знаю.

0
ответ дан 9 December 2019 в 22:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: