Você está aqui: Java ::: Dicas & Truques ::: Imagens e Processamento de Imagens

Obtendo uma lista dos nomes de formatos que podem ser lidos pelas classes da versão atual do Java

Quantidade de visualizações: 7345 vezes
/*
  Este programa mostra como obter a lista de nomes
  de formatos de imagens que podem ser lidos pelas
  classes da versão atual do Java
*/

import javax.imageio.*;
import java.util.*;

public class Estudos{
  public static void main(String args[]){

    // Get list of unique supported read formats
    String[] formatNames = ImageIO.getReaderFormatNames();
    formatNames = unique(formatNames);

    System.out.println("Formatos que podem ser lidos:");

    for(int i = 0; i < formatNames.length; i++)
      System.out.println(formatNames[i]);
  }

  public static String[] unique(String[] strings){
    Set set = new HashSet();
    for(int i = 0; i < strings.length; i++){
      String name = strings[i].toLowerCase();
      set.add(name);
    }
    return (String[])set.toArray(new String[0]);
  } 
}


Link para compartilhar na Internet ou com seus amigos:

JavaScript ::: Dicas & Truques ::: Tratamento de Erros

Como retornar o nome ou tipo de exceção de um erro em JavaScript usando a propriedade name do objeto Error

Quantidade de visualizações: 6756 vezes
Em várias situações nós precisamos saber o nome do tipo de erro de tempo de execução em JavaScript. Para isso nós podemos usar a propriedade name do objeto Error.

Veja um código JavaScript completo demonstrando o seu uso:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<!doctype html>
<html>
<head>
  <title>Estudos JavaScript</title>
</head>
<body>

<script language="javascript">
  // o trecho de código a seguir vai provocar
  // um erro de tempo de execução em JavaScript
  try{
    // y não foi definido
    var x = y;
  }
  catch(e){
    document.write("Tipo do erro: " + e.name);
  }
</script>
  
</body>
</html>

Ao executar este código JavaScript nós teremos o seguinte resultado:

Tipo do erro: ReferenceError

A propriedade name do objeto Error pode retornar os seguintes valores:

EvalError - Um erro provocado pela função eval.
RangeError - Um erro provocado por um número fora da faixa permitida.
ReferenceError - Uma referência ilegal provocou o erro.
SyntaxError - Um erro de sintáxe.
TypeError - Um erro provocado por uma conversão de tipos.
URIError - Provocado por um erro na função encodeURI().


JavaScript ::: Elementos de Formulários HTML ::: input type file Element/Object

Como obter a quantidade de arquivos que o usuário selecionou em um input type file

Quantidade de visualizações: 3861 vezes
Em algumas situações nós precisamos saber quantos arquivos o usuário selecionou em um elemento input type file. Para isso podemos usar a propriedade length do FileList que representa a lista de arquivos no input file. Veja o exemplo a seguir:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Estudos JavaScript</title>

</head>
<body>

<form>
  <input id="arquivo" onChange="contarArquivos()" name="arquivo" multiple type="file">
</form>

<script type="text/javascript">
  function contarArquivos(){
    // vamos obter uma referência ao elemento file
    var arquivo = document.getElementById("arquivo");
    // agora vamos obter a quantidade de arquivos que o usuário selecionou
    var quantArquivos = arquivo.files.length;
	 
    // mostramos o resultado
    window.alert("Você selecionou " + quantArquivos + " arquivos.");  
  }
</script>

</body>
</html>

Note que tiramos proveito do evento onChange() do input file para obter a informação desejada no exato momento que o usuário escolhe o(s) arquivos(s). Neste exemplo eu criei um input file multiple, ou seja, o usuário pode escolher mais de um arquivo por vez (em geral pressionando a tecla Ctrl para múltiplas seleções).


PHP ::: Dicas & Truques ::: Arquivos e Diretórios

Como criar diretórios usando PHP - Como usar a função mkdir() da linguagem PHP para criar diretórios - Revisada

Quantidade de visualizações: 24636 vezes
Diretórios podem ser criados com a função mkdir() do PHP. Esta função recebe o nome do diretório a ser criado, um modo que define as permissões de acesso ao diretório e um valor boolean que define se os diretórios fornecidos no primeiro parâmetro serão criados recursivamente. O valor padrão para o modo de acesso é 0777 (todos têm permissão de leitura, escrita e execução) e false para a criação de diretórios recursivamente.

Veja um trecho de código no qual criamos um diretório no diretório public_html:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<?
  // nome do diretório
  $diretorio = "/site/public_html/minhas_imagens";
   
  // cria o diretório com a permissão 0777
  if(mkdir($diretorio))
    echo "Diretório criado com sucesso.";
  else
    echo "Não foi possível criar o diretório.";
?>

Antes de criar um diretório, é preciso que você verifique se o diretório dentro do qual o novo diretório será criado apresenta as permissões adequadas, do contrário você terá a seguinte mensagem de erro:

Warning: mkdir() [function.mkdir]: Permission denied
in /site/public_html/testes.php on line 8
Não foi possível criar o diretório.

Veja agora como criar um diretório contendo dois sub-diretórios recursivamente:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<?
  // cria o diretório imagens contendo o subdiretório "fotos" 
  // e este conterá o sub-diretório 
  // "recentes"
  $diretorio = "/site/public_html/imagens/fotos/recentes";
   
  // cria o diretório com a permissão 0777
  if(mkdir($diretorio, 0777, true))
    echo "Diretório criado com sucesso.";
  else
    echo "Não foi possível criar o diretório.";
?>

Esta dica foi revisada, atualizada e testada com o PHP 8.


CSS ::: Dicas & Truques ::: Media Queries

CSS3 - O que são CSS media queries e como usá-las em suas páginas web para criar designs responsivos

Quantidade de visualizações: 1282 vezes
Os desenvolvedores web acostumados com o CSS2 com certeza vão se lembrar das media types e como as usávamos, ou ainda usamos, para definir o tipo de mídia para a qual uma determinada folha de estilo será aplicada. Com media types é possível, por exemplo, oferecer estilos diferentes dependendo se o tipo de mídia for all, screen ou print, ou seja, todos os tipos (all), somente tela (screen), ou impressão (print).

O CSS3 trouxe ainda mais comodidade por meio das media queries, que, na verdade, são uma extensão das media types. Com as media queries é possível aplicar uma folha de estilo CSS baseado não somente no tipo de mídia, mas também baseado nas características do navegador web, tais como largura e altura do viewport (a área disponível para exibição dos elementos da página web), a largura e altura do dispositivo, sua orientação e resolução, etc.

Veja, por exemplo, como podemos aplicar uma imagem de fundo diferente na página HTML dependendo do tamanho da tela:



E aqui o código completo para a página HTML e as definições CSS:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<html>
<head>
<title>Estudando CSS3</title>

<meta name="viewport" content="width=device-width, initial-scale=1">
 
<style>
/* demais resoluções */
body{
  background-image: url("horizontal.jpg");
  background-repeat: no-repeat;
}

/* max-width (largura máxima)  */
@media screen and (max-width: 600px) {
  body{
    background-image: url("vertical.jpg");
    background-repeat: no-repeat;
  }
} 
</style>

</head>
<body>
 
</body>
</html>

Este exemplo é bem simples, mas dará a você uma idéia de como iniciar hoje o mesmo o uso das media queries em CSS. Note que, se a resolução for no máximo 600px, a página terá como fundo a imagem "vertical.jpg". Se a página for aberta em outras resoluções, a imagem de fundo será "horizontal.jpg".

Abra o exemplo no seu navegador e experimente redimensionar a janela. Veja como a imagem de fundo é trocada automaticamente ao atingir a resolução que definimos para o atributo max-width da media query. Esta técnica é muito utilizada quando queremos criar uma página web responsiva, ou seja, com design responsivo.


Laravel ::: Artigos e Tutorias ::: CRUD - CREATE, READ, UPDATE, DELETE

Como criar um CRUD completo em Laravel 8 - CRUD em Laravel usando PHP e MySQL (MariaDB) - Parte 2

Quantidade de visualizações: 2543 vezes
Na parte 1 deste tutorial sobre CRUD em Laravel usando PHP e MySQL (MariaDB) nós criamos a base de dados MySQL para a nossa aplicação biblioteca, criamos a aplicação Laravel, fizemos a migração e rodamos a migração, o que resultou na criação de uma tabela MySQL chamada livros.

Nessa segunda parte nós vamos iniciar criando a rota de redirecionamento das ações do CRUD. Vamos criar também o controller e as primeiras views.

Criando a rota de redirecionamento - routes/web.php

Vá até o diretório C:\xampp\htdocs\biblioteca\routes e abra o arquivo web.php. Você verá que ele possui o seguinte conteúdo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------
| Web Routes
|--------------------------------------
|
| Here is where you can register web routes
| for your application. These routes are loaded
| by the RouteServiceProvider within a group
| which contains the "web" middleware group.
| Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});
?>

Vamos alterar o seu conteúdo para a versão abaixo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\LivroController;

Route::resource('livros', LivroController::class);

?>

Veja que criamos uma rota para um recurso, que neste caso será o controller LivroController. Passamos o nome livros para esta rota, de forma que a URL http://localhost/biblioteca/public/livros/create abrirá a view para cadastrar um novo livro.

Hora de criar o controller e o model - a parte controle e modelo do MVC

Com a rota de direcionamento devidamente criada, vamos partir para o controller. Abra uma janela de terminal e digite o comando abaixo:

C:\xampp\htdocs\biblioteca>php artisan make:controller LivroController --resource --model=Livro

O Artisan nos perguntará se queremos criar o modelo também. Informe "yes" e pressione Enter.

A App\Models\Livro model does not exist. Do you want to generate it? (yes/no) [yes]:
> yes

Se tudo correr bem, você verá a seguinte mensagem:

Model created successfully.
Controller created successfully.

Vá até o diretório C:\xampp\htdocs\biblioteca\app\Http\Controllers e localize o arquivo LivroController.php. Abra-o e note que temos os métodos index(), create(), store(), show(), edit(), update() e destroy(). Cada um destes métodos corresponde a uma ação que podemos executar na tabela de livros. Vamos começar com o método create(). Limpe todo o conteúdo deste controller e deixe apenas o código abaixo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<?php

namespace App\Http\Controllers;

use App\Models\Livro;
use Illuminate\Http\Request;

class LivroController extends Controller{
  // mostra a view para cadastrar um novo livro
  public function create(){
    return view('livros.create');
  }
}

?>

O método create() apenas exibirá a página (view) que nos permitirá cadastrar um novo livro. Porém, antes de criar a primeira view, vá no diretório C:\xampp\htdocs\biblioteca\app\Models, localize e abra o arquivo Livro.php. Vamos modificá-lo para o código abaixo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Livro extends Model{
  use HasFactory;

  protected $fillable = [
    'titulo', 'autor', 'paginas'
  ];
}

?>

Veja que informamos, no model Livro, os campos da tabela que serão preenchidos com as nossas informações. Os campos id, created_at e updated_at serão gerenciados pelo Laravel.

A view para cadastrar um novo livro

Chegou o grande momento. Vamos criar a página que nos permitirá cadastrar os livros. Para manter as coisas simples, escreveremos um view bem simples, sem muita formatação. Mas você poderá deixá-la mais bonita mais tarde. O importante aqui é entender a funcionalidade.

Veja o código completo para a view create.blade.php:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<html>
<head>
  <meta charset="utf-8">
  <title>Biblioteca</title>
</head>
<body>

<h1>Novo Livro</h1>

@if($status = Session::get('mensagem'))
  <h2>{{ $status }}</h2>
@endif

@if($errors->any())
  <h2>Houve alguns erros ao processar o formulário</h2>
  <ul>
     @foreach($errors->all() as $error)
        <li>{{ $error }}</li>
     @endforeach
  </ul>
@endif

<form action="{{ route('livros.store') }}" method="post">
@csrf
<table width="200" border="0" cellspacing="3" 
  cellpadding="3">
  <tr>
    <td>Título:</td>
    <td><input type="text" name="titulo" id="titulo" 
      placeholder="Título"></td>
  </tr>
  <tr>
    <td>Autor:</td>
    <td><input type="text" name="autor" id="autor"
      placeholder="Autor"></td>
  </tr>
  <tr>
    <td>Páginas</td>
    <td><input type="text" size="10" name="paginas" 
      id="paginas" placeholder="Quant. Páginas"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><button type="submit">Gravar</button></td>
  </tr>
</table>
</form>

</body>
</html>

Aqui nós criamos um formulário com a action apontando para {{route('livros.store')}}, e a forma de envio é POST. Temos também três elementos HTML do tipo input text, cada um com a propriedade name contendo o mesmo nome do campo na tabela livros. Salve esta view no diretório C:\xampp\htdocs\biblioteca\resources\views\livros.

Agora abra o seu navegador no endereço http://localhost/biblioteca/public/livros/create e teremos o seguinte resultado:



Agora só precisamos obter as informações do formulário e salvá-las no banco de dados.

Gravando o novo livro na tabela do banco de dados

Vamos ver agora como obter os dados do formulário, passá-los para o controller, instanciar o model e finalmente persistir no banco de dados MySQL. Você viu que os dados do form são enviados para o método store() do controller livros. Assim, abra o LivroController.php e adicione o código abaixo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<?php

namespace App\Http\Controllers;

use App\Models\Livro;
use Illuminate\Http\Request;

class LivroController extends Controller{
  // mostra a view para cadastrar um novo livro
  public function create(){
    return view('livros.create');
  }

  // recebe as informações do formulário e as grava
  // no banco de dados
  public function store(Request $request){
    // valida o formulário
    $request->validate([
      'titulo' => 'required',
      'autor' => 'required',
      'paginas' => 'required']);
    
    // obtém os valores do form
    Livro::create($request->all());
     
    // direciona para página cadastro novamente,
    // com uma mensagem de sucesso
    return redirect()->route('livros.create')
      ->with('mensagem', 'Livro salvo com sucesso.');
  }
}

?>

Pronto! A parte CREATE do CRUD já está completa. Experimente cadastrar um novo livro e veja o resultado na tabela do banco de dados. Observe que temos também a validação dos dados do formulário (mensagens indicando quais campos não foram preenchidos) e também uma mensagem de sucesso indicando que os dados foram gravados com sucesso.

Na parte 3 deste tutorial veremos como listar os livros cadastrados e a opção de excluir e editar os livros. Até lá.

Leia a parte 3 aqui: Como criar um CRUD completo em Laravel 8 - CRUD em Laravel usando PHP e MySQL (MariaDB) - Parte 3


Veja mais Dicas e truques de Laravel

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 73 usuários muito felizes estudando em nosso site.