picture box erro ao encontrar o arquivo da imagem

27/09/2015

0

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
Responder

Posts

28/09/2015

Jothaz

Qual tecnologia?

Web Forms, Windows Forms ou MVC?

Posta um print da estrutura do projeto.
Responder

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

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

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

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

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

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

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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar