Array
(
)

picture box erro ao encontrar o arquivo da imagem

Val
   - 27 set 2015

Oi,
tenho seguinte código
já tentei das duas formas:
img1 = Image.FromFile("dois.jpeg");
img1 = Image.FromFile("C:\\Users\\val\\Desktop\\SENAI\\randomimagem\\randomimagem\\bin\\Debug");
esta na mesma pasta do projeto, mas aparece uma mensagem de erro que não consegue encontrar o arquivo
o que pode estar acontecendo?
obrigada

Jothaz
   - 28 set 2015

Qual tecnologia?

Web Forms, Windows Forms ou MVC?

Posta um print da estrutura do projeto.

Nathan Aguiar
|
MVP
Pontos: 1005
    28 set 2015


Citação:
Qual tecnologia?

Web Forms, Windows Forms ou MVC?

Posta um print da estrutura do projeto.


Bem, até onde eu saiba o PictureBox só tem no Windows Forms.

Citação:
Oi,

tenho seguinte código
já tentei das duas formas:

img1 = Image.FromFile("dois.jpeg");

img1 = Image.FromFile("C:\\Users\\val\\Desktop\\SENAI\\randomimagem\\randomimagem\\bin\\Debug");

esta na mesma pasta do projeto, mas aparece uma mensagem de erro que não consegue encontrar o arquivo

o que pode estar acontecendo?
obrigada


Tente da seguinte forma:
pictureBox1.Image = Image.FromFile(@"Img\a.jpg");

Caso continue dando erro mostrando que não foi possível encontrar as imagens, vá no Solution Explorer > No seu diretório de imagens > Clique na imagem > Properties > na opção "Copy to Output Directory" selecione a opção "Copy Always"

Val
   - 28 set 2015

oi consegui resolver o problema de diretório, mas estou com outro probleminha

o programa tem que mostrar as três cartas de modo aleatório quando clicar no botão, ele mostra aleatório somente as duas cartas a terceira não mostra

#Código


public partial class Form1 : Form
    {
        Image img1,img2,img3;
        Random r = new Random();
        string[] carta = {@"C:\Users\val\Desktop\SENAI\randomimagem\randomimagem\bin\Debug\dois2.png", @"C:\Users\val\Desktop\SENAI\randomimagem\randomimagem\bin\Debug\sete7.png",@"C:\Users\val\Desktop\SENAI\randomimagem\randomimagem\bin\Debug\atras.png"};
    
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            img1 = Image.FromFile(@"C:\Users\val\Desktop\SENAI\randomimagem\randomimagem\bin\Debug\dois2.png");
            img2 = Image.FromFile(@"C:\Users\val\Desktop\SENAI\randomimagem\randomimagem\bin\Debug\sete7.png");
            img3 = Image.FromFile(@"C:\Users\val\Desktop\SENAI\randomimagem\randomimagem\bin\Debug\atras.png");

            img1 =  Image.FromFile(carta[r.Next(0,2)]);
            img2=   Image.FromFile(carta[r.Next(0,2)]);
            img3=   Image.FromFile(carta[r.Next(0,2)]);

            pictureBox1.Image = img3;
            pictureBox2.Image = img2;
            pictureBox3.Image = img1;
           
        }
    }
}
OBS não sei se coloquei a tag direito, me desculpem


design form (Clique na imagem para abrir em uma nova janela)

Nathan Aguiar
|
MVP
Pontos: 1005
    28 set 2015

Troque
#Código

img1 =  Image.FromFile(carta[r.Next(0,2)]);
img2=   Image.FromFile(carta[r.Next(0,2)]);
img3=   Image.FromFile(carta[r.Next(0,2)]);


Por:
#Código
img1 =  Image.FromFile(carta[r.Next(0,3)]);
img2=   Image.FromFile(carta[r.Next(0,3)]);
img3=   Image.FromFile(carta[r.Next(0,3)]);


Outra coisa, em relação ao trecho:
#Código
string[] carta = {
@"C:\Users\val\Desktop\SENAI\randomimagem\randomimagem\bin\Debug\dois2.png", 
@"C:\Users\val\Desktop\SENAI\randomimagem\randomimagem\bin\Debug\sete7.png",
@"C:\Users\val\Desktop\SENAI\randomimagem\randomimagem\bin\Debug\atras.png"
};


Seria melhor tu colocar um caminho não especificando o caminho completo, somente o caminho das imagens na aplicação, pois quando outra pessoa for executar seu programa ele (o programa) encontrará as imagens, já com esse seu código, ele irá dar erro pois a árvore de diretórios do outro usuário tem que estar exatamente igual a sua, senão irá dar problema, faça parecido com o que eu disse no outro post acima, ele é a melhor solução.

EDIT: Lendo novamente seu código, eu mesmo me perdi, porque você faz várias referências ao caminho do diretório, tente limpar mais ele e poste novamente para que possamos sugerir melhorias.

Val
   - 28 set 2015

Porque de (0,3)

img1 = Image.FromFile(carta[r.Next(0,3)]);

me confundiu um pouco, o professor havia dito que seria de 0,2 são três cartas que inicia no zero(0,1,2), até questionei isso com ele.
ele fez assim durante a aula e deu certo, mas não quero olhar o dele por enquanto.

Quanto ao caminho concordo com vc , mas foi a única maneira que consegui rodar se vc olhar no inicio do post minha duvida era essa

eu havia colocado

img1 = Image.FromFile("dois.jpeg");

string[]carta={"dois.png"};

mas dava erro de arquivo não encontrado mesmo salvando na mesma pasta do projeto.

Obrigada

Nathan Aguiar
|
MVP
Pontos: 1005
    28 set 2015

Vou usar este exemplo:

int card = rnd.Next(52); // creates a number between 0 and 51

Neste exemplo, eu coloquei que o menor valor é 0, por isso não precisei declarar ele, e que o maior valor é 52, só que o 0 também é um número e então ele vai contar 0 até 51, ou seja, 52 números entendeu? É igual a um array de 10 casas, que parte do 0 até 9, ou seja, 10 casas no array.

Já no caso da imagem, siga mais ou menos o exemplo que eu coloquei acima, se tu fizer daquele jeito conseguirá fazer funcionar.

Val
   - 28 set 2015

funcionou,
mas por favor não me xinga rsrs..

[0 , 2] = ele vai contar o zero que seria 3 casas, não é isso?

[0,3]= ele vai contar o zero que seria 4 casas, não ´isso?

Nathan Aguiar
|
MVP
Pontos: 1005
    28 set 2015

[0,2] = ele vai contar o zero que seria 2 casas. (0 e 1)

[0,3]= ele vai contar o zero que seria 3 casas. (0, 1 e 2)