Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Twain y la resolucion...????? (https://www.clubdelphi.com/foros/showthread.php?t=24750)

User_baja1 01-09-2005 08:11:47

Twain y la resolucion...?????
 
Hola a todos,

Estoy usando el componente TdelphiTwain para trabajar con el escaner. (descargado de http://delphitwain.sourceforge.net)


El problema viene cuando obtengo la imagen, ya que cada usuario tiene un escaner distinto y segun el software del escaner o lo que el usuario toque, obtengo imagenes grandes o enormes. (segun la resulocion ppp)

He probado a ajustar las propiedades del escaner justo despues de que el usuario pulse el boton 'digitalizar' (o lo que sea) y se produzca la transferencia. Para el caso del software del asistente de windows para escaners funciona bien, pero para otros software, ej. hp me da error.

Me gustaria saber si alguien conoce la forma standard de controlar el escaner para que siempre trabaje de la misma forma: 150 ppp y a color.


El codigo que tengo ahora es:



if Twain.LoadLibrary then
begin
{Load source manager}
Twain.SourceManagerLoaded := TRUE;
{Allow user to select source}
SelectedSource := Twain.SelectSource;
if SelectedSource <> -1 then
begin
Source := Twain.Source[SelectedSource];
source.Loaded := TRUE;
Source.TransferMode := ttmMemory;
if (resolucion<>150) and (resolucion<>200) and (resolucion<>300) then resolucion:=150;

Source.EnableSource(true, FALSE);
//despues de que el usuario pulse digitalizar, ajusto las propiedades para que no crezca el archivo resultante
msg_error_escaner(
Source.SetICapUnits(tuPixels), 'No se puede configurar el escaner (propiedad units).');
msg_error_escaner(
Source.SetIPixelType(tbdRGB), 'No se puede configurar el escaner (propiedad color).');
msg_error_escaner(
Source.SetIYResolution(resolucion), 'No se puede configurar el escaner (propiedad ppp y.');
msg_error_escaner(
Source.SetIXResolution(resolucion), 'No se puede configurar el escaner (propiedad ppp x.');


--- donde msg_error_escaner muestra una ventana con el motivo del error ---
procedure msg_error_escaner(valor:TCapabilityRet; texto:String);
var s:String;
begin
case valor of
crSuccess:exit;
crUnsupported: s:='Capability not supported by the source.';
crBadOperation: s:='Bad combination of values from the parameters.';
crDependencyError: s:='Capability depends on another capability which is not properly set.';
crLowMemory: s:='The system is short on memory.';
crInvalidState: s:='The source or the source manager are not ready to set this capability or do the requested operation.';
crInvalidContainer:s:='The container used is invalid.';
end;
showmessage(texto+#13+ s);
end;


vale, pues el error me lo da con el software de hp en cada linea de ajuste del escaner y me dice que

'The source or the source manager are not ready to set this capability or do the requested operation.'

cosa que para el asistente de windows me funcionaba bien, logrando ajustar el escaner por programacion y haciendo caso omiso a los valores del usuario.



¿Podeis ayudarme? Me esta volviendo loco.
Gracias, David.

dec 01-09-2005 08:26:14

Hola,

Planteaste anteayer en un apartado de los Foros distinto la misma cuestión: bien mirado creo que has copiado el mensaje y lo has vuelvo a publicar en otro apartado. Según la guía de estilo de estos Foros eso no está bien, por varios motivos, y, entre los más importantes, porque no ayuda a que se obtenga ayuda. Por otro lado revisa el uso de la etiqueta [ DELPHI ] (entre otras) que sirve para incluir código fuente de Delphi en los mensajes de una manera más limpia, ordenada y legible.


La franja horaria es GMT +2. Ahora son las 21:15:30.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi