2014-05-15 2 views
0

알아낼 수있는 복잡한 문제가 있습니다. 약간의 역사 ... 저는 Bit.ly를 사용하여 qr 코드를 생성했습니다. 내가 신뢰성을 위해 google에 갔을 정도로 그들은 갔다.이미지 데이터가 잘못되었습니다.

Im Quark을 사용하여 코드를 처리하지만 쿼크를 수행하기 전에 구성해야합니다. Bitly를 사용하면 qr 코드가 완벽하게 생성됩니다. 그러나 Google이 그들을 생성 할 때, 그들은 RGB로 약간 회색으로 그려졌으며 완벽했습니다. Perl의 ImageMagick 라이브러리를 사용하여 이미지를 다운로드하기 전에 필요한 수정 작업을 수행하고 있습니다.

지금까지 내가 가지고있는 것입니다. Google에서 다운로드 한 qr 코드 링크를 생성합니다. RGB이기 때문에, 회색 음영 또는 비트 맵이 필요하므로 쿼크 (효과적으로)와 호환됩니다. 나는 단순히 색 공간 => 그레이 스케일로 이미지에 몇 가지 속성을 설정하는 설정 기능을 사용할 때

sub ConvertToGrayscale { 

my ($imagePath) = @_; 
my $OutPath = $imagePath; # $OutPath =~ s/png$/jpg/i; 

my $image = Image::Magick->new() or die 'Unable to create new Image Object.'; 
my $imageReadError = ''; 
my $imageWriteError = ''; 

$imageReadError = $image->Read($imagePath); # returns a code if there is an error 

if ($imageReadError) { 
    warn "Error: $imageReadError. Unable to read image path: $imagePath"; 
} else { 
    # $image->Scale(geometry => '75'); 
    # $image->Set('png:color-type' => 'Grayscale', 'png:bit-depth' => '8'); 
    # $image->Set(colorspace => 'Gray', magick => 'JPEG', quality => '100'); 
    $imageWriteError = $image->Write($OutPath); 
} 

if ($imageWriteError) { warn "Error: $imageWriteError. Unable to write image file:  $OutPath"; } 

}

지금 복잡한 문제는, 그것은 그레이 스케일 이미지 모드를 변환,하지만 난로드 할 때 그것은 쿼크로 거대하고 사용할 수있을만큼 작게 축소 할 수 없습니다. 따라서이 솔루션에 대한 좋은 후보는 두 소프트웨어에 대한 경험이있는 사람입니다.

도움이 될 수있는 참고 정보. 포토샵에 이미지를로드하면 이미지를 그레이 스케일로 변환 할 수 있으며 모든 것이 완벽합니다. 그래서 필자의 펄 스크립트가 포토샵이하는 일을 조롱하고 싶을 것 같다.

답변

0

이 순간에 나는 그것을 실제로 테스트 할 수는 없지만 'Scale'은 전체 이미지를 원본보다 약 5,500 만 75 배 더 크게 만듭니다. 왜 ImageMagick으로 크기를 조절하고 싶은지 잘 모르겠습니다. 대부분 수신하는 응용 프로그램은 인쇄 할 때 원하는 출력으로 확장 할 수 있습니다. 도움이 될 것입니다, 그렇지 않은 경우, 당신의 QR 코드를 생성하는 외부 서비스에 의존하지 마십시오 아침

+0

Google에서 QR 코드를 업로드하는 경우 올바른 크기의 파일 (약 2x2 인치)과 Quark에 나쁜 RGB 색상 공간을 얻습니다. $ image-> Set (colorspace => 'Gray')를 사용하면; RGB에서 그레이 스케일로 변경하려면 qr 코드가 그레이 스케일로 변환되지만 쿼크는 거대한 그림으로보고 Im은 2x2 인치로 크기를 조정할 수 없습니다. 이 정보가 도움이되기를 바랍니다. – user2820907

+0

처리 전후의 이미지를 확인해 주시겠습니까? 실제 이미지가 실제로는 훨씬 커져서 각면이 75 배 더 커졌습니다! 따라서 쿼크는 혼란스러워 할 것입니다. 왜 당신은'$ image-> Scale (geometry => '75');'을하고 싶습니까? – vanHoesel

+0

이미지가 크다고 가정하고 75로 다시 축소하고 싶습니다.이 이미지를 잘못 사용했을 수 있습니다. 문서는 정확히 정확하지 않으며 좋은 예가 없습니다. – user2820907

0

내일을 확인합니다

희망. 이는 상대적으로 간단한 목표이며 Bit.ly에서 경험 한 것처럼 서비스가 사라지는 경우가 있습니다.

대신이 질문에 설명 된대로 cpan 모듈을 사용하는 것이 좋습니다. how to make QR codes in perl cgi. 권장하는 모듈은 cpan에서 사용할 수있는 유일한 모듈과는 거리가 ,니 까, 내가 좋아하는 모듈을 찾을 때까지 약간의 시간을 할애 해보는 것이 좋습니다.

+0

문서에서 알 수는 없지만 색상 공간을 회색조로 설정할 수 있습니까? Quark이 이것에 대해 까다로울 것입니다. 그래서 ImageMagick의 기능을 선택했습니다. – user2820907

관련 문제