| ID | Asunto | Fecha | Nick | |
| 40686 | Cuanto vale un punto de una fuente en pixeles? | 23/04/08 14:38 | Perseo | |  |
Hola buenos dias a todos. tengo un gran problema, estoy en una aplicacion que genera una caratula y la compongo a partir de una imagen de fondo, y un par de imagenes mas, y luego escribo, autor, cancion, canciones etc. El caso es que para el titulo necesito centrar el titulo en la imagen, para posteriormente centrarlo. Tengo este codigo hecho, todavia no esta en una rutina porque la estoy desarrollando, en ella consigo el pixel inicial en el que imprimire, luego obtengo el pixel final sumando el ancho de la imagen, hallo el punto medio, y obtengo el tamaño maximo de la cadena en pixels (teoricamente, porque creo que no lo esta haciendo bien), para ello uso el metodo measurestrings de graphics, pasando la cadena a medir, y la fuente que se utiliza en ese momento pasando el tamaño de la fuente en puntos, el tipo de fuente y si es bold o no, y le digo que la unidad de la pagina es pixels para que me devuelva el tamaño de la fuente en pixels, el caso es que no me lo devuelve bien,no me queda centrado.
La imagen que tomo para el graphics toma el ancho real de la imagen que es 1388 X 1388, pero internamente la estoy tratando con 490 X 490, puede que hay se me vaya.
int initial = backg.X; int final = initial + backg.Width; int midle = final / 2; string cadena = title.Trim(); Bitmap imgPrint = new Bitmap(backgroundImage); Graphics tamano = Graphics.FromImage(imgPrint); tamano.PageUnit = GraphicsUnit.Pixel; SizeF tam = new SizeF(); float wid; tam = tamano.MeasureString(cadena,line.PrintFont); wid = tam.Width; float posini = midle - (wid / 2);
Gracias de ante mano |
|
| ID | Asunto | Fecha | Nick | |
| 41149 | Re: Cuanto vale un punto de una fuente en pixeles? (Resp: 40686) | 08/05/08 15:59 | Perseo | |  |
Mi objetivo era centrar un cadena dentro de una imagen con un tipo de letra especifico, despues de mucho ver, el objeto graphics contiene una clase g.drawstring (le pasarias el tipo de letra, el tipo de aliamiento, un rectangulo que es el ancho maximo de la imagen, con eso se puede centrar) pero dadas mis circustancias en el programa que uso, que no es nuestro y solo podemos usar esa funcion sin tener la oportunidad de pasarle el parametro de como quiero alineado, para que ellos internamente se lo especifiquen al g.draw que estaran usando , no se puede hacer nada. Teoricamente el ancho de un pixel es 1 /72 de pulgada de puntos, si una fuente de 12 puntos seria dividir eso por el pixel, pero no es real ya que no todas las fuentes son progresivas que yo conozca solo la courier new, asi que la unica posibilidad de centrar es esa funcion. Dejo este comentario como informacion a mi duda
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |