как читать значки из файла example_file.resources [duplicate]

Используйте функцию callback() внутри успеха foo(). Попробуйте таким образом. Это просто и легко понять. & nbsp;

var lat = "";
var lon = "";
function callback(data) {
    lat = data.lat;
    lon = data.lon;
}
function getLoc() {
    var url = "http://ip-api.com/json"
    $.getJSON(url, function(data) {
        callback(data);
    });
}

getLoc();
177
задан Margo 22 October 2014 в 11:14
поделиться

16 ответов

Используете ли вы Windows Forms? Если вы добавили изображение с помощью интерфейса свойств / ресурсов, вы получаете доступ к изображению из сгенерированного кода, поэтому вы можете просто сделать это:

var bmp = new Bitmap(WindowsFormsApplication1.Properties.Resources.myimage);
207
ответ дан Matt Hamilton 24 August 2018 в 07:30
поделиться

Я посмотрел на код разработчика из одного из моих проектов и заметил, что он использовал эту нотацию

myButton.Image = global::MyProjectName.Properties.Resources.max;

, где max - это имя ресурса, загруженного в проект.

2
ответ дан Andrew Stein 24 August 2018 в 07:30
поделиться

Вы можете получить ссылку на изображение следующим образом:

Image myImage = Resources.myImage;

Если вы хотите сделать копию изображения, вам нужно будет сделать следующее:

Bitmap bmp = new Bitmap(Resources.myImage);

Не забудьте удалить bmp , когда закончите с ним. Если вы не знаете имя образа ресурса во время компиляции, вы можете использовать диспетчер ресурсов:

ResourceManager rm = Resources.ResourceManager;
Bitmap myImage = (Bitmap)rm.GetObject("myImage");

. Преимущество ResourceManager заключается в том, что вы можете использовать его там, где Resource.myImage будет как правило, вне сферы действия или где вы хотите динамически получать доступ к ресурсам. Кроме того, это работает для звуков, конфигурационных файлов и т. Д.

101
ответ дан Charlie Salts 24 August 2018 в 07:30
поделиться

В моем случае - я использовал иконки в своем ресурсе, но мне нужно было добавить их динамически как Images для некоторых ToolStripMenuItem (s). Таким образом, в методе, который я создал (откуда и происходит фрагмент кода ниже), мне пришлось преобразовать ресурсы значков в растровые изображения, прежде чем я смогу вернуть их для добавления в мой MenuItem.

string imageName = myImageNameStr;
imageName = imageName.Replace(" ", "_");
Icon myIcon = (Icon)Resources.ResourceManager.GetObject(imageName);
return myIcon.ToBitmap();

Что-то еще, о чем нужно знать, если ваш образ / значок имеет пробелы ("") в своем имени при добавлении их на ваш ресурс, VS автоматически заменит эти пробелы на "_" ( с). Потому что пробелы не являются допустимым символом при именовании вашего ресурса. Вот почему я использую метод Replace() в моем ссылочном коде. Вероятно, вы просто проигнорируете эту строку.

5
ответ дан Dave Clemmer 24 August 2018 в 07:30
поделиться

Я предлагаю:

System.Reflection.Assembly thisExe;
thisExe = System.Reflection.Assembly.GetExecutingAssembly();
System.IO.Stream file = 
    thisExe.GetManifestResourceStream("AssemblyName.ImageFile.jpg");
Image yourImage = Image.FromStream(file);

Из msdn: http://msdn.microsoft.com/en-us/library/aa287676 (v = vs.71) .aspx

Использование Image.FromStream лучше, потому что вам не нужно знать формат изображения (bmp, png, ...).

4
ответ дан Davide Icardi 24 August 2018 в 07:30
поделиться

Вы также можете сохранить bmp в var следующим образом:

var bmp = Resources.ImageName;

надеюсь, что это поможет!

2
ответ дан F.joksch 24 August 2018 в 07:30
поделиться

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

    public static Bitmap GetImageByName(string imageName)
    {
        System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
        string resourceName = asm.GetName().Name + ".Properties.Resources";
        var rm = new System.Resources.ResourceManager(resourceName, asm);
        return (Bitmap)rm.GetObject(imageName);

    }
12
ответ дан Gary Kindel 24 August 2018 в 07:30
поделиться
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
this.toolStrip1.Name = "toolStrip1";
this.toolStrip1.Size = new System.Drawing.Size(444, 25);
this.toolStrip1.TabIndex = 0;
this.toolStrip1.Text = "toolStrip1";
object O = global::WindowsFormsApplication1.Properties.Resources.ResourceManager.GetObject("best_robust_ghost");

ToolStripButton btn = new ToolStripButton("m1");
btn.DisplayStyle = ToolStripItemDisplayStyle.Image;
btn.Image = (Image)O;
this.toolStrip1.Items.Add(btn);
-1
ответ дан IR.Programmer 24 August 2018 в 07:30
поделиться

Способ проще, чем большинство всех предложенных ответов

tslMode.Image = global::ProjectName.Properties.Resources.ImageName;
25
ответ дан JDS 24 August 2018 в 07:30
поделиться

Лучше всего добавить их в качестве ресурсов изображения в настройках ресурсов в проекте. Затем вы можете получить изображение напрямую, выполнив Resource.myimage. Это даст изображение через сгенерированное свойство C #.

Если вы просто установите изображение как Embedded Resource, вы можете получить его с помощью:

string name = "Resources.myimage.jpg"
string namespaceName = "MyCompany.MyNamespace";
string resource = namespaceName + "." + name;
Type type = typeof(MyCompany.MyNamespace.MyTypeFromSameAssemblyAsResource);
Bitmap image = new Bitmap(type.Assembly.GetManifestResourceStream(resource));

Где MyTypeFromSameAssemblyAsResource - это любой тип, который вы в вашей сборке.

13
ответ дан John Gibb 24 August 2018 в 07:30
поделиться

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

Изображение похожее доступно из .Properties.Resources.

m просто используя изображение, поскольку все, что меня интересует, вставляет его в элемент управления с изображением на нем.

(Net 4.0, VS2010.)

2
ответ дан Loren Pechtel 24 August 2018 в 07:30
поделиться

Вам нужно загрузить его из потока ресурсов.

Bitmap bmp = new Bitmap(
  System.Reflection.Assembly.GetEntryAssembly().
    GetManifestResourceStream("MyProject.Resources.myimage.png"));

Если вы хотите узнать все имена ресурсов в своей сборке, перейдите по ссылке:

string[] all = System.Reflection.Assembly.GetEntryAssembly().
  GetManifestResourceNames();

foreach (string one in all) {
    MessageBox.Show(one);
}
66
ответ дан peterchen 24 August 2018 в 07:30
поделиться

Используйте ниже. Я проверил это с помощью ячейки представления грида в форме Windows.

Object rm = Properties.Resources.ResourceManager.GetObject("Resource_Image");
Bitmap myImage = (Bitmap)rm;
Image image = myImage;

Название «Resource_Image», вы можете найти в проекте.

Под именем проекта вы можете найти Properties. Разверните его. Там вы можете увидеть файл Resources.resx. Открой это. Примените ваше имя файла как «Resource_Image».

1
ответ дан Suit Boy Apps 24 August 2018 в 07:30
поделиться

Или вы можете использовать эту строку при работе с WPF или Silverlight, особенно там, где у вас есть исходная строка уже в разметке XAML:

(ImageSource)new ImageSourceConverter().ConvertFromString(ImagePath);

Где ImagePath выглядит примерно так:

string ImagePath  = "/ProjectName;component/Resource/ImageName.png";
0
ответ дан TChadwick 24 August 2018 в 07:30
поделиться

Ответ JDS работал лучше всего. Пример загрузки C #:

  • Включить изображение как ресурс (Дерево проекта-> Ресурсы, щелкните правой кнопкой мыши, чтобы добавить желаемый файл ImageName.png)
  • Встроенный ресурс (дерево проекта -> Ресурсы-> ImageName.png, свойства выбора правой кнопки мыши)
  • .png формат файла (.bmp .jpg также должен быть в порядке)

pictureBox1.Image = ProjectName.Properties.Resources.ImageName;

Обратите внимание на следующее:

  • Файл образа ресурса - «ImageName.png», расширение файла должно быть опущено.
  • Имя проекта может быть более адекватным понимается как «Название сборки», которое должно быть соответствующей текстовой записью на странице «Проект-> Свойства».

Примерная строка кода успешно запущена с использованием сообщества VisualStudio 2015.

3
ответ дан user3674642 24 August 2018 в 07:30
поделиться

With и ImageBox с именем «ImagePreview FormStrings.MyImageNames» содержат обычный метод get / set string cast, которые связаны с списком типов прокрутки. Изображения имеют те же имена, что и связанные имена в списке, за исключением .bmp Все растровые изображения перетаскиваются в resource.resx

Object rm = Properties.Resources.ResourceManager.GetObject(FormStrings.MyImageNames);
Bitmap myImage = (Bitmap)rm;
ImagePreview.Image = myImage;
5
ответ дан Violator 24 August 2018 в 07:30
поделиться
Другие вопросы по тегам:

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