viernes, 15 de marzo de 2013

0 Comentarios
Publicado en Lista, Artículo, Negocios

Arister 4

Aquí les traigo el Artisteer 4, el mejor "pro"grama de diseño.

Descargan el Artisteer 4 de la pagina oficial y lo instalan normalmente. 
Extraen el archivo .rar que descargarán que dice parche y lo que resulta de la extracción lo copian, vamos al icono del artisteer en el escritorio>clic derecho sobre él>seleccionamos:"abrir la ubicación del archivo"> clic en un espacio  y pegan ahí lo que habiamos copiado antes. en el cartel emergente le dan a "Remplazar">cierran>abren Artister 4 y me cuentan.

Aristeer 4

Parche

martes, 19 de febrero de 2013

0 Comentarios
Publicado en Lista, Artículo, Negocios

Presentaciones de la materia de Taller de Ingeniería de Software

viernes, 1 de febrero de 2013

0 Comentarios
Publicado en Lista, Artículo, Negocios

Unidad I de Telecomunicaciones

Buena tarde compañeros. Les dejo el link de la presentación de la primera unidad de la materia.


0 Comentarios
Publicado en Lista, Artículo, Negocios

Presentaciones de Taller de Ingeniería de Software

Les presento a continuación las 2 presentaciones de la materia.

Iso 12207                             Unidad I

Espero les sirvan para el desarrollo de la misma.



jueves, 20 de diciembre de 2012

0 Comentarios
Publicado en Lista, Artículo, Negocios

Crack para BIOS bloqueada de laptop DELL


 

 Hola compañeros. Hace unos días me encontré con un gran problema cuando quise "meterle mano" a una laptop DELL Latitude D620, la BIOS estaba bloqueada y fue un gran problema encontrar la solución. Por suerte, existe el código para ingresarlo en consola en linux y poder descifrar la contraseña.

 El código se ingresa en una hoja de texto y guardarlo como dell.c El código es el siguiente: 

#include <stdio.h>
#include <string.h>
#include <time.h>
#define mystr "My own utility. Copyright (C) 2007-2010 hpgl, Russia"
#define allow595B
#define allowA95B
#define allow2A7B
#define fSVCTAG 0
#define fHDDSN 1
#define fHDDold 2
#define t595B 0
#define tD35B 1
#define tA95B 2
#define t2A7B 3
#ifdef allow595B
#define f595B
#endif
#ifdef allowA95B
#define f595B
#endif
#ifdef allow2A7B
#define f595B
#endif
char bSuffix[]="595BD35BA95B2A7B";
char scancods[]="\00\0331234567890-=\010\011qwertyuiop[]\015\377asdfghjkl;'`\377\\zxcvbnm,./";
char encscans[]={0x05,0x10,0x13,0x09,0x32,0x03,0x25,0x11,0x1F,0x17,0x06,0x15, \
0x30,0x19,0x26,0x22,0x0A,0x02,0x2C,0x2F,0x16,0x14,0x07,0x18, \
0x24,0x23,0x31,0x20,0x1E,0x08,0x2D,0x21,0x04,0x0B,0x12,0x2E};
#ifdef allow2A7B
char chartabl2A7B[72]="012345679abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0";
#endif
unsigned int MD5magic[64]={
0xd76aa478, 0xe8c7b756, 0x242070db, 0xc1bdceee,
0xf57c0faf, 0x4787c62a, 0xa8304613, 0xfd469501,
0x698098d8, 0x8b44f7af, 0xffff5bb1, 0x895cd7be,
0x6b901122, 0xfd987193, 0xa679438e, 0x49b40821,
0xf61e2562, 0xc040b340, 0x265e5a51, 0xe9b6c7aa,
0xd62f105d, 0x02441453, 0xd8a1e681, 0xe7d3fbc8,
0x21e1cde6, 0xc33707d6, 0xf4d50d87, 0x455a14ed,
0xa9e3e905, 0xfcefa3f8, 0x676f02d9, 0x8d2a4c8a,
0xfffa3942, 0x8771f681, 0x6d9d6122, 0xfde5380c,
0xa4beea44, 0x4bdecfa9, 0xf6bb4b60, 0xbebfbc70,
0x289b7ec6, 0xeaa127fa, 0xd4ef3085, 0x4881d05,
0xd9d4d039, 0xe6db99e5, 0x1fa27cf8, 0xc4ac5665,
0xf4292244, 0x432aff97, 0xab9423a7, 0xfc93a039,
0x655b59c3, 0x8f0ccc92, 0xffeff47d, 0x85845dd1,
0x6fa87e4f, 0xfe2ce6e0, 0xa3014314, 0x4e0811a1,
0xf7537e82, 0xbd3af235, 0x2ad7d2bb, 0xeb86d391};
unsigned char inData[23],outData[16];
char buf1output[32], buf1input[20];
char bug4;
void calcsuffix(char bfunc, char btype, char *outbuf);
void initData(void) {
*(int *)(&outData[0]) =0x67452301;
*(int *)(&outData[4]) =0xEFCDAB89;
*(int *)(&outData[8]) =0x98BADCFE;
*(int *)(&outData[12])=0x10325476;
}
typedef int (encfuncT1) (int num1, int num2, int num3);
#ifdef f595B
int enc0F2(int num1, int num2, int num3) {return (((~num3 ^ num2) & num1) ^ ~num3);}
int enc0F4(int num1, int num2, int num3) {return (( ~num2 ^ num1) ^ num3); }
int enc0F5(int num1, int num2, int num3) {return (( ~num1 | ~num3) ^ num2); }
#endif
int enc1F2(int num1, int num2, int num3) {return ((( num3 ^ num2) & num1) ^ num3);}
int enc1F4(int num1, int num2, int num3) {return (( num2 ^ num1) ^ num3); }
int enc1F5(int num1, int num2, int num3) {return (( num1 | ~num3) ^ num2); }
int encF3 (int num1, int num2, int num3) {return ((( num1 ^ num2) & num3) ^ num2);}
typedef int (encfuncT2)(encfuncT1 func, int num1, int num2, int num3, int key);
int enc1F1 (encfuncT1 func, int num1, int num2, int num3, int key)
{
return func(num1,num2,num3)+key;
}
#ifdef f595B
int enc0F1 (encfuncT1 func, int num1, int num2, int num3, int key)
{
return func(num1,num2,num3)-key;
}
#endif
unsigned int rol(unsigned int t, int bitsrot)
{
return (t >> (32-bitsrot)) | (t << bitsrot);
}
void blockEncodeF(int *outdata, int *encblock, encfuncT2 func1,
encfuncT1 func2, encfuncT1 func3, encfuncT1 func4, encfuncT1 func5 )
{
char S[4][4] = {{ 7, 12, 17, 22 },{ 5, 9, 14, 20 },{ 4, 11, 16, 23 },{ 6, 10, 15, 21 }};
int A,B,C,D,t,i;
A=outdata[0];
B=outdata[1];
C=outdata[2];
D=outdata[3];
for (i=0;i<64;i++) { t=MD5magic[i]; switch (i>>4) {
case 0: t=A+func1(func2,B,C,D, t+encblock[(i) & 15]); break;
case 1: t=A+func1(func3,B,C,D, t+encblock[(i*5+1) & 15]); break;
case 2: t=A+func1(func4,B,C,D, t+encblock[(i*3+5) & 15]); break;
case 3: t=A+func1(func5,B,C,D, t+encblock[(i*7) & 15]); break;
}
A=D; D=C; C=B; B+=rol(t,S[i>>4][i&3]);
};
outdata[0]+=A;
outdata[1]+=B;
outdata[2]+=C;
outdata[3]+=D;
}
void blockEncode(char *outdata, int *encblock, char btype) {
if (btype==tD35B)
blockEncodeF((int *)outdata,encblock,enc1F1,enc1F2,encF3,enc1F4,enc1F5);
#ifdef f595B
else
blockEncodeF((int *)outdata,encblock,enc0F1,enc0F2,encF3,enc0F4,enc0F5);
#endif
}
void encode(char *inbuf,int cnt,char btype) {
int encBlock[16];
char *ptr;
initData();
memcpy(encBlock,inbuf,cnt);
ptr=&((char *)encBlock)[cnt];
*ptr++=0x80;
memset(ptr,0,64-1-cnt);
encBlock[16-2]=((unsigned int)cnt << 3);
blockEncode(outData,encBlock,btype);
}
void psw(char bfunc, char btype, char *outbuf) {
int cnt,i,lenpsw,r;
if (bfunc==fHDDold) {
memcpy(inData,buf1input,11);
// calcsuffix(bfunc,btype,outbuf);
for (cnt=0;cnt<8;cnt++) outbuf[cnt]= scancods[ outbuf[cnt] ]; } else { memset(inData,0,sizeof(inData)); if (bfunc==fSVCTAG) cnt=7; else cnt=11; if ((bfunc==fHDDSN) && (btype==tA95B)) memcpy(inData,&buf1input[3],cnt-3); else memcpy(inData,buf1input,cnt); if (btype==t595B) memcpy(&inData[cnt],&bSuffix[0],4); else if (btype==tD35B) memcpy(&inData[cnt],&bSuffix[4],4); else if (btype==tA95B) memcpy(&inData[cnt],&bSuffix[0],4); else if (btype==t2A7B) memcpy(&inData[cnt],&bSuffix[12],4); cnt += 4; inData[cnt] = inData[4] & 0x1F; inData[cnt+1] = ((inData[4] >> 5) | (((inData[3] >> 5) | (inData[3] << 3)) & 0xF1) & 0x1F); inData[cnt+2] = ((inData[3] >> 2) & 0x1F);
inData[cnt+3] = (inData[3] >> 7) | ((inData[2] << 1) & 0x1F); inData[cnt+4] = (inData[2] >> 4) | ((inData[1] << 4) & 0x1F); inData[cnt+5] = (inData[1] >> 1) & 0x1F;
inData[cnt+6] = (inData[1] >> 6) | ((inData[0] << 2) & 0x1F); inData[cnt+7] = (inData[0] >> 3) & 0x1F;
for (i=cnt;i<8+cnt;i++) {
r = 0xAA;
if (inData[i] & 1)
r ^= inData[4];
if (inData[i] & 2)
r ^= inData[3];
if (inData[i] & 4)
r ^= inData[2];
if (inData[i] & 8)
r ^= inData[1];
if (inData[i] & 16)
r ^= inData[0];
inData[i] = encscans[r % sizeof(encscans)];
}
cnt = 23;
encode(inData,cnt,btype);
r = outData[0] % 9;
lenpsw = 0;
for (cnt=0;cnt<16;cnt++) {
if ((r <= cnt) && (lenpsw<8)) { buf1output[lenpsw++] = scancods[encscans[outData[cnt] % sizeof(encscans)]]; } } } } int main(int argc, char *argv[]) { unsigned char len,len1,bfunc,eol=1,echo=0, *minus,s2[20]; signed char btype; int argn=0; if (argc>1)
echo=1;
if (!echo)
fputs("" mystr "\n" \
"Short service tag should be right padded with '*' up to length 7 chars\n" \
"HDD serial number is right 11 chars from real HDDSerNum left padded with '*'\n" \
"Some BIOSes has left pad HDD serial number with spaces instead '*'\n",stdout);
while (!feof(stdin)) {
if ((argc<=1) && argn) break; fputs("Input: #",stdout); if (argc>1) {
strncpy(buf1input,argv[++argn],sizeof(buf1input));argc--;
}
else {
if (!eol) while (!feof(stdin) && (fgetc(stdin)!='\n')); eol=0;
if (fgets(buf1input,16+1+1,stdin)==NULL) {
if (echo) fputs("\n",stdout);
break;
}
}
len=strlen(buf1input);
if (len && (buf1input[len-1]=='\n')) {len--;eol=1;buf1input[len]=0;}
if (echo) {fputs(buf1input,stdout);fputs("\n",stdout);}
minus=strchr(buf1input,'-');
if (len==11) {
if (minus!=NULL) {
fputs("- Incorrect input\n",stdout);
continue;
}
bfunc=fHDDold;
fputs("By HDD serial number for older BIOS: ",stdout);
} else {
if (len==0) break;
if (minus==NULL) {
fputs("- No BIOS type found in input string, must be followed by -595B and other registered\n",stdout);
continue;
}
len1=minus-(unsigned char*)buf1input;
btype=-1;
#ifdef allow595B
if (strncmp(&buf1input[len1+1],&bSuffix[0],4)==0) btype=t595B;
else
#endif
if (strncmp(&buf1input[len1+1],&bSuffix[4],4)==0) btype=tD35B;
else
#ifdef allowA95B
if (strncmp(&buf1input[len1+1],&bSuffix[8],4)==0) btype=tA95B;
else
#endif
#ifdef allow2A7B
if (strncmp(&buf1input[len1+1],&bSuffix[12],4)==0) btype=t2A7B;
#endif
if (btype<0) {
fputs("- Invalid service tag in input string, allowed only -D35B and other registered\n",stdout);
continue;
}
struct tm *time1; time_t timer1=time(NULL);
time1=gmtime(&timer1);
strftime(s2,sizeof(s2),"%d.%m.%Y %H:%M",time1);
fputs(s2,stdout);
fputs(" DELL ",stdout);
if (len1==7) {
bfunc=fSVCTAG;
fputs("service tag: ",stdout);
fputs(buf1input,stdout);
} else
if (len1==11) {
bfunc=fHDDSN;
fputs("HDD serial number: ",stdout);
fputs(buf1input,stdout);
}
else {
fputs("- Incorrect input, must be 7 chars service tag or 11 chars HDD serial number\n",stdout);
continue;
}
}
psw(bfunc,btype,buf1output);
fputs(" password: ",stdout);
fputs(buf1output,stdout);
if (bug4) fputs(" !bug4 warning - password may not work!",stdout);
if (btype==t595B) if (bfunc==fSVCTAG) { //to check if A95B bug
char mpw1[20];
strcpy(mpw1,buf1output);
psw(bfunc,tA95B,buf1output);
if (strcmp(mpw1,buf1output)!=0) {
fputs(" passwordA95B: ",stdout);
fputs(buf1output,stdout);
}
}
fputs("\n",stdout);
}
return 0;
}
 Lo siguiente que debemos hacer es teclear lo siguiente en consola:
sudo nano dell.c
Después debemos compilar el archivo:
sudo gcc -dell dell.c
Ahora, simplemente corremos el programa
./dell.c
Una vez ejecutado el programa, nos pedirá el código que nos muestra la pantalla del bloqueo de nuestra laptop DELL.

martes, 20 de noviembre de 2012

0 Comentarios
Publicado en Lista, Artículo, Negocios

como crear un exe a partir de una aplicación vb net 2008 o 2010



0 Comentarios
Publicado en Lista, Artículo, Negocios

GENERAR ARCHIVO JAR DESDE NETBEANS



lunes, 5 de noviembre de 2012

0 Comentarios
Publicado en Lista, Artículo, Negocios

Desaparecerá Windows Live Messenger; llega Skype


Desaparecerá Windows Live Messenger; llega SkypeMonterrey, México.- Microsoft anunciará en el transcurso de esta semana la eliminación del Windows Live Messenger, el cual será sustituido por Skype, esto con el objetivo de darle promoción a este último.
Ante la decisión, Microsoft enviará correos electrónicos a los usuarios informándoles de dichos cambios. 
Cabe recordar que Windows Live Messinger fue uno de los pioneros en la mensajería personal, pues anteriormente solo existían los chats. Este fue lanzado bajo el nombre de MSN Messenger el 22 de Julio de 1999 y ya como Windows Live Messenger el 13 de Diciembre de 2005.
Por su parte, Skype cuenta con servicio de chat cifrado. Al parecer, la transición se realizará de manera semejante a Hotmail con Outlook; es decir, las cuentas de usuarios se "linkearán" de manera automatica y sin opción de Skype.
Entre los servicios que se preven ofrezca el nuevo mensajero es permitir ingresar a través de una cuenta de Facebook.

Fuente: Sexenio Nuevo Leon

sábado, 3 de noviembre de 2012

0 Comentarios
Publicado en Lista, Artículo, Negocios

Firefox: Microsoft es el culpable de que hayamos perdido 9 millones de descargas



Firefox: Microsoft es el culpable de que hayamos perdido 9 millones de descargas
Foto: skuggen.com

Harvey Anderson, Vicepresidente de Asuntos Empresariales y Asesor General de la Fundación  Mozilla, arremetió contra Microsoft por la pérdida de entre 6 y 9 millones de descargas de su navegador web Firefox, aludiendo que la firma de Bill Gates tuvo un yerro grueso que los perjudicó de manera profunda.
Según el directivo, su rival olvidó a su producto en la pantalla de elección de su Service Pack 1 de Windows 7, provocando la “millonaria pérdida” que al parecer también produjo efectos negativos a sus arcas.
“Tras considerar el impacto agregado de todos los proveedores de navegadores, parece que este fallo técnico ha disminuido las descargas y la eficacia del remedio ordenado en los acuerdos de 2009”, aseveró Anderson en una nota de prensa.
¿Qué responderá Microsoft? En unos días seguramente lo sabremos (Con información de Genbeta).

Fuente: generaccion.com

sábado, 6 de octubre de 2012

0 Comentarios
Publicado en Lista, Artículo, Negocios

¿Cómo vectorizar una imagen con Adobe Illustrator?

  • La solución es convertir la imagen a vectores, aunque el 90% de las veces cuesta lograr un resultado satisfactorio. Aquí te contamos algunos secretos para vectorizar utilizando la herramienta Live Trace de Adobe Illustrator CS2.

    Una de las características más solicitadas por los usuarios de los paquetes de edición de Adobe fue una buena herramienta de vectorización que permitiera convertir una mapa de bits o bitmap en un gráfico escalable formado por vectores. Con la desaparición tiempo atrás de Streamline, la herramienta de vectorización de Photoshop, y los resultados poco felices que se podían obtener con el más reciente Trace, los usuarios pedían de rodillas una solución a este problema, que aunque no lo parezca es uno de los más complicados a la hora de trabajar contra reloj.

    La plegaria tuvo éxito finalmente. La nueva herramienta Live Trace de Adobe Illustrator CS2 (que viene en el paquete llamado Creative Suite 2) produce excelentes resultados que pueden ahorrar un tiempo clave al profesional de la edición. "Live" viene de la idea de que puedes hacer modificaciones prácticamente en tiempo real sobre la imagen vectorizada, alterando ciertos parámetros hasta obtener el resultado que más se aproxima a lo deseado; una característica nueva del paquete CS2 y que próximamente con la salida de CS3 es de esperar que presente aún mayores posibilidades.
    Haremos un breve tutorial para ejemplificar el proceso, y les contaremos un par de secretillos muy útiles. Antes hemos de establecer qué diferencias hay entre una imagen de mapa de bits, o rasterizada, y un vector.

    Raster versus vector
    En el mundo gráfico existen estos dos tipos de imágenes. Algunos de los programas que crean imágenes rasterizadas (también conocidas como de píxels o pintadas) son Photoshop, MacPaint, PC Paintbrush, o Painter. Otros programas crean vectores (conocidos también como arte orientado a objetos), por ejemplo Illustrator, FreeHand, MacDraw, y Expression. Una tercera clase de programas pueden trabajar con ambas formas de imágenes, tal el caso de CorelDRAW! y Canvas.

    Las imágenes rasterizadas están compuestas de miles de pequeños puntos, llamados píxeles. La cantidad de píxeles determina la resolución de la imagen. El ordenador recrea la imagen recordando la posición exacta de cada píxel; no tiene idea de que la imagen por ejemplo es un círculo, solo de que es una colección de pequeños puntos.

    • Una imagen bitmap. Una imagen bitmap.
    • Al escalar se produce el efecto de "serrucho" tan odiado. Al escalar se produce el efecto de "serrucho" tan odiado.
    El vector, en cambio, es un método diferente ya que, en lugar de crear píxeles individuales, crea objetos como rectángulos y círculos. El ordenador recrea una imagen calculando sus coordenadas matemáticas, simplemente. Es por ello que una imagen vectorizada ocupa una fracción del espacio requerida por la misma imagen rasterizada, pero lo que es más importante es que no importa cuánto escales una imagen de vector, no existe pérdida de detalles. ¡Puede ser tan pequeña como una estampilla de correo o tan inmensa como la pared de un edificio, y siempre se verá idéntica!

    Vectorizando con Illustrator CS2
    Utilizaremos la herramienta Live Trace de Adobe Illustrator CS2 porque a pesar de su simplicidad de uso produce, como dijimos, algunos de los mejores resultados en este tipo de técnicas.

    Lo primero es abrir una imagen rasterizada en un archivo nuevo de Illustrator. Puedes hacerlo con el comando de menú Archivo > Colocar (File > Place) o bien simplemente arrastrar la imagen adentro de la ventana del programa. Luego simplemente toca la imagen con la herramienta de selección (V) o la de selección directa (A) (las flechas blanca o negra, vamos) y el menú sobre la imagen cambiará a Live Trace.

    Y aquí viene lo bueno. Haz clic al botón "Live Trace" y observa el resultado inicial.

    Luego de Live Trace Luego de Live Trace
    ¡En el caso de esta fotografía, con seguridad no es lo que necesitas! Si bien Live Trace suele producir un resultado muy satisfactorio con sólo tocar ese botón, muchas veces la imagen rasterizada es oscura, o no es lo que mejor se presta a ser vectorizado. Un logotipo en blanco y negro o en color, por ejemplo, tiene muchas más posibilidades de quedar a unos pocos clics de distancia de la perfección, lo que ahorra mucho tiempo si estás bajo presión y debes entregar un trabajo en cuestión de minutos.

    ¡Es más fácil corregir una imagen vectorizada con Live Trace que dibujar todo desde el vamos, naturalmente! Pero sigamos con nuestro ejemplo. El girasol es inútil así. Jugando con las posibilidades "vivas" de Live Trace podríamos ver algunas mejoras si cambiamos los valores de Tolerancia (Threshold) y Min Area (píxeles). A menor tolerancia y Min Area, más detalles aparecen en tiempo real en nuestro nuevo vector, pero en este caso no sirven de mucho.

    Así que usemos la magia más grande de los ordenadores y la más deseada por la humanidad: CTRL-Z, para volver al pasado. Vamos a intentarlo de nuevo.
    CTRL-Z, y lo intentamos de nuevo  
    CTRL-Z, y lo intentamos de nuevo
    Ya que el botón por default no nos dio el resultado que deseábamos, podemos probar con las diferentes configuraciones de Live Trace. Hay muchas, como ven en la ilustración, algunas más indicadas para dibujos a mano, o logotipos, e incluso para fotografías a color como nuestro girasol, que ahora luce más útil.

    • Filtro Photo Low Fidelity Filtro Photo Low Fidelity
    • Photo High Fidelity. Photo High Fidelity.
    Si es que estamos conformes con el resultado –en este caso se podría decir que el filtro de Foto de Alta Fidelidad nos gustó– es hora de convertir efectivamente la imagen en una colección de vectores, pinchando el botón Expandir (Expand). En este momento es cuando se termina el componente "Live" y ya nos quedamos con el resultado real. Aunque no final, desde luego, ya que podrían hacer falta ciertos retoques acomodando líneas aquí y allá, cambiando colores (puedes probar con Live Paint, que permite utilizar el cubo de pintura sobre áreas o grupos de vectores) y dando el acabado final.

    El proceso ahorra tiempo por toneladas pero no es perfecto y siempre requiere un poco de trabajo de edición posterior. Claro que quienes recuerden cómo era este proceso años atrás hoy pueden descorchar su vino predilecto porque esto parecía sólo posible en sueños y hoy es realidad.

    ¿Y los secretos?
    Ahora bien, ¿y dónde están los secretos, si Live Trace hace todo solo? Quizás podrías ayudarlo un poco. Si por ejemplo remueves el fondo azul del girasol, previo a vectorizar la imagen, obtendrás una imagen mucho más limpia y rápida de corregir en Illustrator. Para ello editas la imagen en Photoshop quitando el cielo y recién después utilizas Live Trace.

    Con Live Trace 
    A veces encontrarás buenos resultados escalando la imagen de mapa de bits al menos a 500 píxeles de ancho o poco más, en caso de que sea muy pequeña. Si es demasiado pequeña, Live Trace produce resultados menos detallados; pero por el contrario, si es muy grande el resultado es "demasiado" detallado. Si bien puedes eliminar la superabundancia de nodos con el comando Simplificar (Object > Path > Simplify) la imagen suele deformarse en exceso.

    Incluso a veces es conveniente reducir el tamaño de una imagen rasterizada (cuando es muy grande) para que Live Trace no genere curvas excesivas, dependiendo por supuesto del efecto buscado.

    De manera que una muy buena técnica es editar la imagen en Photoshop, teniendo en mente la forma de trabajo de Live Trace. Para ello debes familiarizarte con la herramienta y no tener peros en "engañar" la imagen original. La escalas, y lo que ves que Live Trace podría dejar como una línea inconclusa o mal trazada lo editas de manera que al vectorizar no haya dudas de formas ni direcciones.

    Puedes alterar la iluminación y contraste de la imagen antes de vectorizar, que es mucho más conveniente que alterar los valores de Tolerancia y Area Min de los píxeles (usando la barra de Live Trace).

    Altera la iluminación y contraste Altera la iluminación y contraste
    Puede ocurrir, además, que tengas una imagen simétrica. En ese caso puedes editarla en Photoshop quitándole una mitad, corregir líneas, colores y luminancia, y luego proceder a vectorizar con Live Trace. Para finalizar el trabajo simplemente copias el resultado, espejas (reflect) y unes las mitades.
    • ¿Para qué trabajar el doble? ¿Para qué trabajar el doble?
    • Uniendo las partes Uniendo las partes
    La mejor técnica es una combinación de herramientas y el juego entre Photoshop e Illustrator. Con sólo unas horas de prueba y error, cualquiera puede descubrir las posibilidades de Live Trace y –en muchos casos, te lo aseguramos– salir más temprano de la oficina.