¿Cómo centrar una imagen con PhotoViewAttacher?

Estoy trabajando con PhotoViewAttacher para poder manejar el zoom en las imágenes que me muestra la app mi inconveniente es que cuando mi Linerlayout está con la propiedad android:layout_height=”wrap_parent” la imagen lo muestra bien centrada en la ImageView La imagen en el ImageView esta centrada

<LinearLayout         android:id="@+id/linearLayout2"         android:layout_width="match_parent"         android:layout_height="match_parent"          android:orientation="vertical">         <LinearLayout             android:id="@+id/linearLayout"             android:layout_width="match_parent"             android:layout_height="158dp"             android:orientation="vertical">          </LinearLayout>          <ImageView             android:id="@+id/fotoProducto"             android:layout_width="match_parent"             android:layout_height="match_parent"             android:background="@color/colorNegro"             android:scaleType="centerInside"             android:src="@drawable/psi" />      </LinearLayout> 

Pero cuando la muevo a match_parent la imagen ya no cuadraLa imagen queda de lado Izquierdo y con el tamaño pequeño

tanto en la clase como en el XML ya les implemente el setTypeScale=CENTER en todo sentido, fit_xy, fit_center, center_insade, scrop etc y aun asi no se logra ajustar la imagen a primera instancia a menos que este en Wrap_parent, pero quiero que este en match_parent

Crear efecto zoom al pasar puntero en imagen web page

He estado intentando aplicar un efecto de zoom en mi web page, esta web page es una simulación de tienda por lo que me gustaria saber como aplicar este efecto. Para ser especifico me refiero al efecto zoom que usan en la actualidad muchas tiendas en linea en la cual de muestran la imagen del producto y tu al pasar el puntero del mouse este hace un acercamiento a la dicha imagen, el efecto de amazon es un ejemplo claro de algo que estoy buscando.

Desconozco si esto se puede hacer con css o algo de javascript pero espero me puedan ayudar, saludos!

Error previsualizar imagen en modal

Tengo un boton para crear un usuario, al apretarlo se abre una ventana modal, con todos los campos en blanco, y una imagen tipo anonymus, que se cambia por medio de js al subir una foto (antes de darle al boton para guardar los datos)

Luego tengo una tabla con todos los usuarios listados, y cada fila tiene un boton para editar a cada usuario. Si apreto el boton de editar, se abre un modal que me trae los datos actuales del usuario, incluyendo la previsualizacion de su foto.

El problema es el siguiente: Cuando abro la pagina, y le doy click en crear usuario, me muestra la imagen anónima, como debe ser.

Luego doy click en el boton editar de cualquier usuario, se abre su ventana modal que muestra informacion, la cierro sin hacer cambio alguno.

Cuando vuelvo a apretar el boton para agregar usuario, me trae en lugar de la imagen anonima, la imagen del ultimo usuario al que dí click en editar.

Boton de agregar usuario:

<button class="btn btn-primary btnAgregarUsuario" data-toggle="modal"  data-target="#modalAgregarUsuario">Agregar Usuario</button> 

Modal de Agregar Usuario

<div class="modal fade" id="modalAgregarUsuario" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">    <div class="modal-dialog modal-dialog-centered" role="document">      <div class="modal-content">      <form role="form" method="post" enctype="multipart/form-data" action="">              <div class="modal-header bg-dark">                <h5 class="modal-title">Agregar Usuario</h5>                <button type="button" class="close" data-dismiss="modal" aria-label="Close">                 <span aria-hidden="true" class="text-white">&times;</span>               </button>              </div>              <div class="modal-body">                <div class="card-body">                 ...                  <!-- Entrada para la foto -->                 <div class="form-group">                       <div class="input-group">                         <div class="input-group-prepend">                           <span class="input-group-text" width="20%"><i class="fa fa-camera"></i></span>                         </div>                         <div class="custom-file">                           <input type="file" class="custom-file-input nuevaFoto" name="nuevaFoto">                           <label class="custom-file-label" for="nuevaFoto">Seleccionar foto</label>                         </div>                        </div>                 </div>                  <div class="form-group">                       <img class="img-thumbnail rounded mx-auto d-block previsualizar" src="vistas\img\usuarios\anonymous.png" alt="Foto de perfil actual"  width="200px ">                       <p class="text-center text-muted">Foto de perfil actual</p>                 </div>                </div>              </div>              <div class="modal-footer">               <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>               <button type="submit" class="btn btn-primary">Guardar</button>             </div>    <?php      $  crearUsuario = new ControladorUsuarios();     $  crearUsuario -> ctrCrearUsuario();    ?>   </form> </div> 

Boton de Editar Usuario

  <button class="btn btn-warning btnEditarUsuario"    idUsuario="'.$  value['id'].'" data-toggle="modal" data-    target="#modalEditarUsuario"><i class="fa fa-pencil-alt"></i></button> 

Modal de Editar Usuario

<div class="modal fade" id="modalEditarUsuario" tabindex="-1" role="dialog"  aria-labelledby="exampleModalCenterTitle" aria-hidden="true">    <div class="modal-dialog modal-dialog-centered" role="document">      <div class="modal-content">       <form role="form" method="post" enctype="multipart/form-data" action="">              <div class="modal-header bg-dark">                <h5 class="modal-title">Editar Usuario</h5>                <button type="button" class="close" data-dismiss="modal" aria-label="Close">                 <span aria-hidden="true" class="text-white">&times;</span>               </button>              </div>              <div class="modal-body">                <div class="card-body">                 ...                  <!-- Entrada para la foto -->                 <div class="form-group">                       <div class="input-group">                         <div class="input-group-prepend">                           <span class="input-group-text" width="20%"><i class="fa fa-camera"></i></span>                         </div>                         <div class="custom-file">                           <input type="file" class="custom-file-input nuevaFoto" name="editarFoto">                           <label class="custom-file-label" for="editarFoto">Seleccionar foto</label>                         </div>                        </div>                 </div>                  <div class="form-group">                       <img class="img-thumbnail rounded mx-auto d-block previsualizar" src="" alt="Foto de perfil actual"  width="200px ">                       <p class="text-center text-muted">Foto de perfil actual</p>                       <input type="hidden" id="fotoActual" name="fotoActual">                 </div>                </div>              </div>              <div class="modal-footer">               <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancelar</button>               <button type="submit" class="btn btn-primary">Guardar</button>             </div>          <?php                 $  editarUsuario = new ControladorUsuarios();                 $  editarUsuario -> ctrEditarUsuario();          ?>    </form> </div> 

Método JS para previsualizar datos al darle click al boton editar

$  (".btnEditarUsuario").click(function(){      var idUsuario = $  (this).attr("idUsuario");       var datos = new FormData();     datos.append("idUsuario", idUsuario);      $  .ajax({          url: "ajax/usuarios.ajax.php",         method: "POST",         data: datos,         cache: false,         contentType: false,         processData: false,         dataType: "json",         success: function(respuesta){             $  ("#editarNombre").val(respuesta["nombre"]);             $  ("#editarUsuario").val(respuesta["usuario"]);             $  ("#editarPerfil").html(respuesta["perfil"]);             $  ("#editarPerfil").val(respuesta["perfil"]);             $  ("#fotoActual").val(respuesta["foto"]);               $  ("#passwordActual").val(respuesta["password"]);              if(respuesta["foto"] != ""){                 $  (".previsualizar").attr("src", respuesta["foto"])             }         }      });  }) 

Y por ultimo este metodo que se habia pasado subirlo, el que sube la imagen para usuarios nuevos

/*================================================= SUBIENDO FOTO DE USUARIO =================================================*/  $  (".nuevaFoto").change(function(){  var imagen = this.files[0];  /*================================================= VALIDAR FORMATO =================================================*/  if(imagen['type'] != "image/jpg" && imagen['type'] != "image/png" && imagen['type'] != "image/jpeg"){     $  (".nuevaFoto").val("");      swal.fire({         title: "Error al subir la imagen",         text: "La imagen debe estar en formato JPG o PNG",         type: "error",         confirmButtonText: "Cerrar"     }); } else if(imagen['size'] > 2000000){      $  (".nuevaFoto").val("");      swal.fire({         title: "Error al subir la imagen",         text: "La imagen debe pesar menos de 2mb",         type: "error",         confirmButtonText: "Cerrar"     }); } else {     var datosImagen = new FileReader;     datosImagen.readAsDataURL(imagen);      $  (datosImagen).on("load", function(event){          var rutaImagen = event.target.result;         $  (".previsualizar").attr("src", rutaImagen);     }) } 

})

Como cambiar el [src] de una imagen en Angular 7

Tengo mi vista en Angular y quiero cambiar la imagen, utilicé databinding pero al darle click no me cambia de imagen, que estoy realizando mal ? Inclusive al pintar el valor de superball no me arroja nada en la consola web, gracias.

Deseo cambiarla por '../../../assets/images/png/up-arrow.png'

.html

<td style="padding-left: 50px;cursor: pointer;" mat-cell *matCellDef="let element">     <img (click)="functioninTypeScript($  event.target)" style="width: 30px;height:30px" [src]="superball" />  </td> 

.ts

export class PokelistaComponent implements OnInit, OnDestroy {  superball = '../../../assets/images/png/superball.png';  constructor() ...  functioninTypeScript(image: any) {     this.superball = image.src;     this.superball = (image.src === this.superball) ?     this.superball = '../../../assets/images/png/up-arrow.png' : this.superball;     console.log(this.superball);   } 

Obtener el ancho y largo de una imagen en input file

Tengo que obtener el ancho y largo de una imagen que se seleccionó de un input file. He intentado con esto, sin éxito. No estoy segura si este sea el método correcto para obtenerlos o pueda hacerlo de otra forma.

HTML

<form id="formimg">     <label>Selecciona una imagen</label>     <input type="file" name="txtFile" id="txtFile" accept="image/*"> </form> 

JS

$  ("#txtFile").change(function(e) {          var image, file;          if ((file = this.files[0])) {             image = new Image();              image.onload = function() {                 alert("La imagen es de ancho " + this.width + " y largo " + this.height);             };              image.src = _URL.createObjectURL(file);         }       }); 

Subir Imagen Con Codeigniter y Ajax – No me carga

estaba siguiendo un curso de codeigniter – pero decidí salirme del camino y cambiar algunas cosas como lo que es agregar ajax al proyecto – entonces mi problema es el siguiente:

Mi facebook : https://www.facebook.com/0101114100d

1- en mi primer proyecto(se recargaba la pagina)si podía guardar mi imagen, pero al cambiar a ajax ya no puedo guardarla y nose por que.

2- quisiera subir 5 imágenes, investigue algo, pero si no soluciono el primero problema, no puedo entrar al otro – ajunto mi codigo. Cabe aclarar que todo es bd

Mi controlador con el que guardo y actualizo

 public function admin_saveproducto($  product_id = null) {     //echo json_encode($  product_id);     if ($  product_id == null) {         //Creamos el producto         $  data['producto'] = $  data['codigoPro'] = $  data['estado'] = $  data['categoria'] =         $  data['moneda'] = $  data['tipoCamb'] = $  data['precioCom'] = $  data['preciVen'] =          $  data['descripcion'] = "";         //Acccion         $  data['title'] = "Registrar Producto";         $  data['boton_title'] = "Registrar";     } else {         // editamos el producto         $  product = $  this->Product->find($  product_id);         $  data['producto'] = $  product->producto;         $  data['codigoPro'] = $  product->codigoPro;         $  data['estado'] = $  product->estado;         $  data['categoria'] = $  product->categoria;         $  data['moneda'] = $  product->moneda;         $  data['tipoCamb'] = $  product->tipoCamb;         $  data['precioCom'] = $  product->precioCom;         $  data['preciVen'] = $  product->preciVen;         $  data['descripcion'] = $  product->descripcion;         $  data['title'] = "Actualizar Producto";         $  data['boton_title'] = "Actualizar";     }     if ($  this->input->post()) {          //El siguiente codigo hace referencia a la importacion validation         //Orden :: nombre del campo :: nombre con el que se muestra el error ::Reglas de validaciones         $  this->form_validation->set_rules('producto', 'Producto', 'required|min_length[4]|max_length[100]');         $  this->form_validation->set_rules('codigo', 'Codigo', 'required|min_length[2]|max_length[20]');         $  this->form_validation->set_rules('estado', 'Estado', 'required');         $  this->form_validation->set_rules('categoria', 'Categoria', 'required');         // $  this->form_validation->set_rules('moneda', 'Moneda', 'required');         $  this->form_validation->set_rules('tipocambio', 'T.Cambio', 'required');         $  this->form_validation->set_rules('preciocompra', 'P.Compra', 'required');         $  this->form_validation->set_rules('precioventa', 'P.Venta', 'required');         //  $  this->form_validation->set_rules('image', 'Imagen', 'required');         $  this->form_validation->set_rules('descripcion', 'Descripcion', 'max_length[500]');         //salvar nuestro post, pero antes verificamos que nuestros datos cumplen con todas las reglas         if ($  this->form_validation->run()) {             //Nuestro form es valido             $  save = array(                 'producto' => $  this->input->post('producto'),                 'codigoPro' => $  this->input->post('codigo'),                 'estado' => $  this->input->post('estado'),                 'categoria' => $  this->input->post('categoria'),                 // 'moneda' => $  this->input->post('moneda'),                 'tipoCamb' => $  this->input->post('tipocambio'),                 'precioCom' => $  this->input->post('preciocompra'),                 'preciVen' => $  this->input->post('precioventa'),                 'descripcion' => $  this->input->post('descripcion'),             );             //Registrar             if ($  product_id == null) {                  if ($  product_id = $  this->Product->insert($  save)) {                     echo json_encode('exito-insert');                     //exit;                 } else {                     echo json_encode('error-insert');                     exit;                 }                 //Actualizat             } else {                if($  this->Product->update($  product_id, $  save)){                    echo json_encode("exito-actualizo");                }else{                echo json_encode("exito-no-actualizo");}                // echo json_encode($  this->Product->update($  product_id, $  save));             }             //Cargar Imagen             $  this->upload($  product_id, $  this->input->post('producto'));             // }else{             //                   //echo json_encode('Error al guardar');         } else {             echo json_encode(validation_errors());             exit;         }       } else {         // Llamamos a nuestra funcion(helper) que se encuentra en (helper/Product_helper)         $  data["data_estado"] = estado();         $  data["data_categoria"] = categoria();         $  data["data_moneda"] = moneda();         $  view["body"] = $  this->load->view("admin/admin/saveproduct", $  data, TRUE);         // $  view["body"] hace referencia a la variable contenida en el template body         //esta vista es de contenido de la variable body(admin/template/body) definido en el template siguiente:          $  this->parser->parse("admin/template/body", $  view);     }      //Cargar Imagen  } 

-Aqui la funcion de guardado – y redimensionamiento de la imagen

 private function upload($  product_id, $  product) {      $  image = "image"; //Nombre del input image     //Nuevo metodo     $  product = clean_name($  product);      //Configuracion de carga     $  config['upload_path'] = 'uploads/productos'; //ruta     $  config['file_name'] = $  product; //nombre del archivo     $  config['allowed_types'] = 'gif|jpg|png';     $  config['max_size'] = 5000;     $  config['overwrite'] = TRUE;     /* $  config['max_width']         = 1024;       $  config['max_height']        = 768; */     //cargamos la libreria     $  this->load->library('upload', $  config);      if ($  this->upload->do_upload($  image)) {         //se cargo la imagen         //Datos del upload         $  data = $  this->upload->data();          $  save = array(             'img1' => $  product . $  data["file_ext"]         );         //llamamos a la funcion upload(system/model/) y cargamos la imagen         $  this->Product->update($  product_id, $  save);         //Redimencinar imagenen         $  this->resize_image($  data['full_path'], $  product . $  data["file_ext"]);     } }  //Funcion para Redimencionar Imagen function resize_image($  path_image) {      $  config['image_library'] = 'gd2';     $  config['source_image'] = $  path_image;     $  config['maintain_ratio'] = TRUE;     // $  config['create_thumb']     = FALSE;     $  config['width'] = 500;     $  config['height'] = 500;      $  this->load->library('image_lib', $  config);     $  this->image_lib->resize(); } 

Obtener el Obtener el valor de pixeles de una recta que pasa en distintos ángulos de una imagen en escala de grises en python

Hola necesito de su ayuda no soy muy buen programador en Python soy un poco novato. Y necesito crear una función de ayude a calcular toso los valores de pixel que pasen por una recta En un ángulo ya sea que la recta pase en 90° o en 150° sobre la imagen, pero no sé bien como aplicarlo para poder obtener dichos valores de pixel que pasen por esa recta o en ese ángulo.

Adjunto una imagen con las que estoy trabajando https://drive.google.com/file/d/14Y0N5_G1P_VVXXcQ5j9dbcuv03VDLt1c/view?usp=sharing

Espero y me puedan ayudar y darme una orientación de como poder realizarlo y aplicarlo en Python

¿Cómo mostrar imagen en el URL y no un string?

tengo un problema para visualizar mi imagen desde el URL de ella, lo que pasa es que quiero que se muestre la imagen y no un código string, para poder visualizarla de mejor manera.

Este es el problema que tengo

Entonces claramente quiero que se me muestre la imagen.

Como estoy guardando la imagen:

$  avatar = $  request->file('avatar');     if($  avatar){          // Poner nombre único         $  avatar_name = 'usuario'.$  request->username.'-'.time().$  avatar->getClientOriginalName();          // Guardarla en la carpeta storage (storage/app/users)         Storage::disk('avatar')->put($  avatar_name, File::get($  avatar));          // Seteo el nombre de la imagen en el objeto         $  user->avatar = $  avatar_name;     } 

Como la obtengo:

public function getImage($  filename){     $  file = Storage::disk('avatar')->get($  filename);     return new Response($  file, 200); } 

Ruta para obtener la imagen:

Route::get('avatar/{filename}', 'UsuarioController@getImage')->name('user.avatar'); 

Base de datos:

Base de datos

Mostrando la imagen dentro del blade no tengo problemas.

Imagen mostrada correctamente en el blade