Miniatura de imagem em TQuickGrid Pessoa eu consegui, em uma TQuickGrid, conforme o exemplo: http://www.adianti.com.br/framework_files/tutor/index.php?class=DatagridImageView ,mostrar uma imagem cadastrada no meu sistema, mas ela está aparecendo no tamanho natural, gostaria de criar uma miniatura da mesma, como isso é possível....

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (6)


JM

Acompanhando. Tô precisando disso também.
FP

Mais um precisando.. tá difícil.. mas vamos tentando
FP

Demorou um tempo mas eu consegui da seguinte maneira:

 
  1. <?php
  2. /**
  3. * On complete upload
  4. */
  5. public static function onComplete($param)
  6. {
  7. //new TMessage('info', 'Upload completed: '.$param['str_document_path']);
  8. // refresh photo_frame
  9. TScript::create("$('#photo_frame').html('')");
  10. TScript::create("$('#photo_frame').append(\"<img style='width:100%' src='tmp/{$param['str_document_path']}'>\");");
  11. }
  12. ?>
FP

 
  1. <?php
  2. //Formulário de entrada de dados de Máscara de dados
  3. class MinhcaClasseUploadForm extends TPage{
  4. private $form;
  5. public function __construct()
  6. {
  7. parent::__construct();
  8. $this->form = new TQuickForm('form_upload');
  9. $this->form->setFormTitle(_t('Upload Data'));
  10. $this->form->class ='tform';
  11. //Declarando os campos que devem coincidir com o campo do banco de dados
  12. //str_document_path = Caminho de onde está o arquivo/imagem/ etc que estará salvo no banco de dados
  13. // ex.: assets/img/imagem1.jpg
  14. // assets/img/documento.pdf
  15. $str_document_path = new TFile('str_document_path');
  16. // chamando a função OnComplete
  17. $str_document_path->setCompleteAction(new TAction(array($this, 'onComplete')));
  18. //Incluir o Tooltip
  19. //Incluir a Validação dos campos
  20. //Configurando os campos - máscaras
  21. //Adicionando os campos
  22. $this->form->addQuickField(_t('Document Path'), $str_document_path, 200);
  23. //Inserindo o frame para apresentar a imagem com a formatação desejada
  24. $this->frame = new TElement('div');
  25. $this->frame->id = 'photo_frame';
  26. $this->frame->style = 'width:134px;height:auto;min-height:100px;border:0px solid gray;padding:4px;';
  27. $row = $this->form->addRow();
  28. $row->addCell('');
  29. $row->addCell($this->frame);
  30. //Botão de Salvamento
  31. $save = new TAction(array($this, 'onSave'));
  32. $this->form->addQuickAction(_t('Save'), $save, 'fa:save');
  33. //Boão de criar novo registro
  34. $this->form->addQuickAction(_t('New'), new TAction(array($this, 'onEdit')), 'fa:plus-square green');
  35. //Criando o container
  36. $container = new TTable;
  37. $container->width = '97%';
  38. $container->addRow()->addCell(new TXMLBreadCrumb('menu.xml', 'LocationDocList'));
  39. $container->addRow()->addCell($this->form);
  40. parent::add($container);
  41. }
  42. /**
  43. * On complete upload
  44. */
  45. public static function onComplete($param)
  46. {
  47. //new TMessage('info', 'Upload completed: '.$param['str_document_path']);
  48. // refresh photo_frame
  49. TScript::create("$('#photo_frame').html('')");
  50. TScript::create("$('#photo_frame').append(\\"<img style='width:100%' src='tmp/{$param['str_document_path']}'>\\");");
  51. }
  52. }
  53. public function makeThumbnails($updir, $img, $id)
  54. {
  55. $thumbnail_width = 300;
  56. $thumbnail_height = 540;
  57. $thumb_beforeword = "";
  58. $arr_image_details = getimagesize("$updir" . "$img"); // pass id to thumb name
  59. $original_width = $arr_image_details[0];
  60. $original_height = $arr_image_details[1];
  61. if ($original_width > $original_height) {
  62. $new_width = $thumbnail_width;
  63. $new_height = intval($original_height * $new_width / $original_width);
  64. } else {
  65. $new_height = $thumbnail_height;
  66. $new_width = intval($original_width * $new_height / $original_height);
  67. }
  68. $dest_x = intval(($thumbnail_width - $new_width) / 2);
  69. $dest_y = intval(($thumbnail_height - $new_height) / 2);
  70. if ($arr_image_details[2] == 1) {
  71. $imgt = "ImageGIF";
  72. $imgcreatefrom = "ImageCreateFromGIF";
  73. }
  74. if ($arr_image_details[2] == 2) {
  75. $imgt = "ImageJPEG";
  76. $imgcreatefrom = "ImageCreateFromJPEG";
  77. }
  78. if ($arr_image_details[2] == 3) {
  79. $imgt = "ImagePNG";
  80. $imgcreatefrom = "ImageCreateFromPNG";
  81. }
  82. if ($imgt) {
  83. $old_image = $imgcreatefrom("$updir" . "$img");
  84. $new_image = imagecreatetruecolor($thumbnail_width, $thumbnail_height);
  85. imagecopyresized($new_image, $old_image, $dest_x, $dest_y, 0, 0, $new_width, $new_height, $original_width, $original_height);
  86. $imgt($new_image, "$updir" . "/thumb/". "$thumb_beforeword" . "$img");
  87. }
  88. }
  89. }
  90. ?>
FP

Porém ainda não sei como proibir acesso a imagem passando a URL completa através do .htaccess sem que o framework também tenha o seu acesso negado.
Gostaria que através do meu frame work tivesse acesso ao diretório onde estão os arquivos e que não fosse possível acessar pela URL completa.
Se alguém puder ajudar agradeço
Forte abraço amigos
PD

Neste exemplo:
www.adianti.com.br/framework_files/tutor/index.php?class=DatagridIma

Esta solução:
// define the transformer method over image
$column->setTransformer( function($image) {
$a= new TImage($image);
$a->style='width:50px'; // AQUI
return $a;
});