picture box erro ao encontrar o arquivo da imagem

27/09/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

Val

Respostas

28/09/2015

Jothaz

Qual tecnologia?

Web Forms, Windows Forms ou MVC?

Posta um print da estrutura do projeto.
Responder Citar

28/09/2015

Nathan Aguiar

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.

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"
Responder Citar

28/09/2015

Val

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


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




[img:descricao=design form]http://arquivo.devmedia.com.br/forum/imagem/0-20150928-112157.png[/img]
Responder Citar

28/09/2015

Nathan Aguiar

Troque
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:
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:
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.
Responder Citar

28/09/2015

Val

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
Responder Citar

28/09/2015

Nathan Aguiar

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.
Responder Citar

28/09/2015

Val

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?
Responder Citar

28/09/2015

Nathan Aguiar

[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)
Responder Citar